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
- SBCSCodePageEncoding.cs
- DesignerView.xaml.cs
- State.cs
- StorageConditionPropertyMapping.cs
- MetaData.cs
- counter.cs
- CellQuery.cs
- ConnectionString.cs
- ArraySegment.cs
- PowerEase.cs
- TypeDependencyAttribute.cs
- RotationValidation.cs
- FlowLayout.cs
- SignedXml.cs
- NavigationProperty.cs
- Pen.cs
- WebBrowserProgressChangedEventHandler.cs
- SimpleTypeResolver.cs
- DesignerHierarchicalDataSourceView.cs
- UnsafeNativeMethods.cs
- MutexSecurity.cs
- ImageAutomationPeer.cs
- DataSet.cs
- TextParagraphProperties.cs
- RSAProtectedConfigurationProvider.cs
- DeriveBytes.cs
- DockAndAnchorLayout.cs
- TreeView.cs
- SocketException.cs
- EventMetadata.cs
- AnnotationAdorner.cs
- SQLMembershipProvider.cs
- DummyDataSource.cs
- SessionChannels.cs
- WmlValidationSummaryAdapter.cs
- PeerConnector.cs
- UnitControl.cs
- RuntimeCompatibilityAttribute.cs
- HandledMouseEvent.cs
- SchemaNames.cs
- ShapingWorkspace.cs
- StickyNoteAnnotations.cs
- TrustLevelCollection.cs
- IdentityModelDictionary.cs
- MasterPageCodeDomTreeGenerator.cs
- Debugger.cs
- Typography.cs
- UnauthorizedWebPart.cs
- PointLightBase.cs
- PerformanceCounterManager.cs
- SessionStateModule.cs
- DynamicQueryableWrapper.cs
- UriSection.cs
- EncryptedReference.cs
- Int32Animation.cs
- thaishape.cs
- CountAggregationOperator.cs
- NetworkStream.cs
- AlignmentXValidation.cs
- ClientRequest.cs
- Message.cs
- IisTraceWebEventProvider.cs
- EncoderBestFitFallback.cs
- RandomNumberGenerator.cs
- HtmlInputFile.cs
- PingReply.cs
- X509ChainElement.cs
- TextInfo.cs
- ResourceDisplayNameAttribute.cs
- HtmlTitle.cs
- ChunkedMemoryStream.cs
- CodeIterationStatement.cs
- IndexExpression.cs
- SortDescriptionCollection.cs
- MenuItemBinding.cs
- File.cs
- NumberFormatInfo.cs
- PtsHelper.cs
- ResourceDescriptionAttribute.cs
- EFAssociationProvider.cs
- XsltFunctions.cs
- NameObjectCollectionBase.cs
- PathData.cs
- ViewBase.cs
- UndirectedGraph.cs
- BaseInfoTable.cs
- SetStateDesigner.cs
- SqlInfoMessageEvent.cs
- RemoteWebConfigurationHostStream.cs
- TableCell.cs
- KeyedCollection.cs
- ChangePassword.cs
- FileRecordSequence.cs
- CollaborationHelperFunctions.cs
- DrawListViewColumnHeaderEventArgs.cs
- MetadataFile.cs
- HMAC.cs
- TypedTableBaseExtensions.cs
- RuleDefinitions.cs
- BindingMAnagerBase.cs