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
- DataServiceSaveChangesEventArgs.cs
- AtlasWeb.Designer.cs
- ToolStripDropDownItem.cs
- SpellerHighlightLayer.cs
- SqlDependency.cs
- mediapermission.cs
- HiddenFieldPageStatePersister.cs
- CompressedStack.cs
- Menu.cs
- FontDriver.cs
- CommandBindingCollection.cs
- RightsDocument.cs
- DeadCharTextComposition.cs
- ButtonAutomationPeer.cs
- SmtpLoginAuthenticationModule.cs
- DiscreteKeyFrames.cs
- PageFunction.cs
- XmlSchemaType.cs
- PathFigureCollectionConverter.cs
- MinMaxParagraphWidth.cs
- ReadWriteObjectLock.cs
- SqlNode.cs
- Drawing.cs
- ViewgenContext.cs
- MenuAutoFormat.cs
- BmpBitmapDecoder.cs
- GPStream.cs
- DataSourceSelectArguments.cs
- LinqDataSourceDeleteEventArgs.cs
- OpCellTreeNode.cs
- MarginsConverter.cs
- Rect.cs
- XmlNodeChangedEventManager.cs
- SynchronizedMessageSource.cs
- BaseParagraph.cs
- VisualStyleRenderer.cs
- FormsAuthentication.cs
- LayoutTableCell.cs
- SectionInformation.cs
- ServiceDesigner.xaml.cs
- DetailsViewCommandEventArgs.cs
- RotationValidation.cs
- DocumentsTrace.cs
- QilFunction.cs
- AutomationProperty.cs
- SocketInformation.cs
- PrimitiveXmlSerializers.cs
- CodeMemberField.cs
- WebBrowsableAttribute.cs
- HeaderedContentControl.cs
- DataPager.cs
- SourceLineInfo.cs
- IgnoreFileBuildProvider.cs
- AdornerHitTestResult.cs
- ControlBuilder.cs
- PlaceHolder.cs
- EventLogEntryCollection.cs
- OleDbPermission.cs
- DbConnectionClosed.cs
- TextServicesDisplayAttribute.cs
- EntityException.cs
- Stroke.cs
- ProcessHostFactoryHelper.cs
- XmlNodeComparer.cs
- CaseStatement.cs
- InheritanceContextHelper.cs
- UrlPropertyAttribute.cs
- DataServiceHostFactory.cs
- SerialPort.cs
- RelOps.cs
- CompoundFileDeflateTransform.cs
- AmbientLight.cs
- ImageIndexConverter.cs
- ExpressionVisitor.cs
- ProxySimple.cs
- CallSiteOps.cs
- BindingListCollectionView.cs
- MD5CryptoServiceProvider.cs
- UnsignedPublishLicense.cs
- EditorPartCollection.cs
- FileStream.cs
- AffineTransform3D.cs
- ViewStateException.cs
- FontInfo.cs
- TimeZoneInfo.cs
- SqlComparer.cs
- MatrixCamera.cs
- PointHitTestResult.cs
- DocumentApplicationJournalEntry.cs
- DataGridTextColumn.cs
- Rect.cs
- CompilationAssemblyInstallComponent.cs
- DrawListViewColumnHeaderEventArgs.cs
- TemplateControl.cs
- ThreadStaticAttribute.cs
- dataobject.cs
- HandleExceptionArgs.cs
- SqlClientWrapperSmiStream.cs
- HTMLTextWriter.cs
- xmlsaver.cs