Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Controls / Primitives / SelectiveScrollingGrid.cs / 1305600 / SelectiveScrollingGrid.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // //--------------------------------------------------------------------------- using System; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Media; namespace System.Windows.Controls.Primitives { ////// Subclass of Grid that knows how to freeze certain cells in place when scrolled. /// Used as the panel for the DataGridRow to hold the header, cells, and details. /// public class SelectiveScrollingGrid : Grid { ////// Attached property to specify the selective scroll behaviour of cells /// public static readonly DependencyProperty SelectiveScrollin----entationProperty = DependencyProperty.RegisterAttached( "SelectiveScrollin----entation", typeof(SelectiveScrollin----entation), typeof(SelectiveScrollingGrid), new FrameworkPropertyMetadata(SelectiveScrollin----entation.Both, new PropertyChangedCallback(OnSelectiveScrollin----entationChanged))); ////// Getter for the SelectiveScrollin----entation attached property /// /// ///public static SelectiveScrollin----entation GetSelectiveScrollin----entation(DependencyObject obj) { return (SelectiveScrollin----entation)obj.GetValue(SelectiveScrollin----entationProperty); } /// /// Setter for the SelectiveScrollin----entation attached property /// /// /// public static void SetSelectiveScrollin----entation(DependencyObject obj, SelectiveScrollin----entation value) { obj.SetValue(SelectiveScrollin----entationProperty, value); } ////// Property changed call back for SelectiveScrollin----entation property /// /// /// private static void OnSelectiveScrollin----entationChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { UIElement element = d as UIElement; SelectiveScrollin----entation orientation = (SelectiveScrollin----entation)e.NewValue; ScrollViewer scrollViewer = DataGridHelper.FindVisualParent(element); if (scrollViewer != null && element != null) { Transform transform = element.RenderTransform; if (transform != null) { BindingOperations.ClearBinding(transform, TranslateTransform.XProperty); BindingOperations.ClearBinding(transform, TranslateTransform.YProperty); } if (orientation == SelectiveScrollin----entation.Both) { element.RenderTransform = null; } else { TranslateTransform translateTransform = new TranslateTransform(); // Add binding to XProperty of transform if orientation is not horizontal if (orientation != SelectiveScrollin----entation.Horizontal) { Binding horizontalBinding = new Binding("ContentHorizontalOffset"); horizontalBinding.Source = scrollViewer; BindingOperations.SetBinding(translateTransform, TranslateTransform.XProperty, horizontalBinding); } // Add binding to YProperty of transfrom if orientation is not vertical if (orientation != SelectiveScrollin----entation.Vertical) { Binding verticalBinding = new Binding("ContentVerticalOffset"); verticalBinding.Source = scrollViewer; BindingOperations.SetBinding(translateTransform, TranslateTransform.YProperty, verticalBinding); } element.RenderTransform = translateTransform; } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RecordBuilder.cs
- Path.cs
- File.cs
- ReaderContextStackData.cs
- HtmlInputSubmit.cs
- DocumentManager.cs
- Thread.cs
- WmiEventSink.cs
- CompilerTypeWithParams.cs
- DivideByZeroException.cs
- EntityProviderServices.cs
- XamlInt32CollectionSerializer.cs
- BitmapPalettes.cs
- ScrollBar.cs
- Proxy.cs
- CapabilitiesAssignment.cs
- RequestCacheEntry.cs
- MyContact.cs
- EventSchemaTraceListener.cs
- TextServicesCompartmentContext.cs
- AllMembershipCondition.cs
- DataGridViewElement.cs
- ExtensionQuery.cs
- ConnectionPool.cs
- Operators.cs
- _ConnectOverlappedAsyncResult.cs
- SocketException.cs
- errorpatternmatcher.cs
- UIElementHelper.cs
- SingleKeyFrameCollection.cs
- AxisAngleRotation3D.cs
- MetadataHelper.cs
- MgmtConfigurationRecord.cs
- MatrixTransform3D.cs
- WindowsAuthenticationModule.cs
- Sql8ExpressionRewriter.cs
- EntityConnectionStringBuilder.cs
- IApplicationTrustManager.cs
- SelectorAutomationPeer.cs
- Stylus.cs
- StrokeNodeOperations2.cs
- safemediahandle.cs
- SID.cs
- SHA1CryptoServiceProvider.cs
- TimeSpanOrInfiniteConverter.cs
- CatalogPart.cs
- ConfigXmlAttribute.cs
- TypeUtils.cs
- FormViewInsertEventArgs.cs
- ISO2022Encoding.cs
- RawStylusSystemGestureInputReport.cs
- SQLBinary.cs
- QueryOperator.cs
- IsolatedStorage.cs
- LocalFileSettingsProvider.cs
- UpdateTracker.cs
- ExpressionHelper.cs
- ViewStateModeByIdAttribute.cs
- DataGridViewColumnEventArgs.cs
- ComboBoxAutomationPeer.cs
- Material.cs
- DataErrorValidationRule.cs
- Ref.cs
- basevalidator.cs
- IntSecurity.cs
- JsonQNameDataContract.cs
- EventProviderClassic.cs
- RoleGroup.cs
- ManagementDateTime.cs
- DictationGrammar.cs
- RemotingSurrogateSelector.cs
- ResourceReferenceExpressionConverter.cs
- LayoutSettings.cs
- XmlAnyAttributeAttribute.cs
- InfoCardKeyedHashAlgorithm.cs
- XmlSchemaCompilationSettings.cs
- SoapMessage.cs
- UserControlFileEditor.cs
- SmtpReplyReader.cs
- HtmlInputImage.cs
- CatalogPart.cs
- GridViewEditEventArgs.cs
- EntityKeyElement.cs
- ManagementObjectSearcher.cs
- EntityRecordInfo.cs
- SqlFunctionAttribute.cs
- TransformerInfoCollection.cs
- WS2007HttpBindingCollectionElement.cs
- CodeCompiler.cs
- ImageSourceValueSerializer.cs
- ApplicationDirectoryMembershipCondition.cs
- TargetParameterCountException.cs
- ThrowOnMultipleAssignment.cs
- ItemCheckEvent.cs
- ExpressionBindingCollection.cs
- SecureStringHasher.cs
- Queue.cs
- NameService.cs
- LockCookie.cs
- SafeEventLogWriteHandle.cs