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
- CookieParameter.cs
- _HelperAsyncResults.cs
- WindowExtensionMethods.cs
- IIS7UserPrincipal.cs
- WaveHeader.cs
- DynamicMethod.cs
- InputLangChangeEvent.cs
- IntSecurity.cs
- FontSource.cs
- ChildrenQuery.cs
- PrintingPermission.cs
- DESCryptoServiceProvider.cs
- DoubleCollectionValueSerializer.cs
- DeflateStream.cs
- ClientFormsIdentity.cs
- PartialList.cs
- FixedFlowMap.cs
- BindingList.cs
- HtmlInputImage.cs
- Statements.cs
- AmbientValueAttribute.cs
- parserscommon.cs
- ResXDataNode.cs
- EntityType.cs
- dataprotectionpermission.cs
- TraceSwitch.cs
- XmlTextWriter.cs
- StateDesigner.Helpers.cs
- LiteralText.cs
- RoleManagerSection.cs
- TextProperties.cs
- ConfigXmlAttribute.cs
- LoginName.cs
- HScrollBar.cs
- PerformanceCounterPermissionEntry.cs
- MimeWriter.cs
- Stroke.cs
- DbConnectionStringCommon.cs
- TextDecoration.cs
- CmsInterop.cs
- FontWeightConverter.cs
- FormatVersion.cs
- RestHandlerFactory.cs
- PageCatalogPartDesigner.cs
- AtomMaterializer.cs
- FormsAuthenticationCredentials.cs
- DesignerProperties.cs
- HashAlgorithm.cs
- SchemaAttDef.cs
- Profiler.cs
- HostedTcpTransportManager.cs
- TemplateColumn.cs
- DefaultBindingPropertyAttribute.cs
- GridToolTip.cs
- SymbolType.cs
- PeerPresenceInfo.cs
- BrowserCapabilitiesFactoryBase.cs
- RelatedView.cs
- DocumentViewerBase.cs
- EdmSchemaAttribute.cs
- ThicknessAnimationBase.cs
- SrgsSemanticInterpretationTag.cs
- SiteMapDataSourceView.cs
- PersonalizableAttribute.cs
- XPathDocumentNavigator.cs
- DropShadowBitmapEffect.cs
- SecurityTokenSpecification.cs
- SharedDp.cs
- ResourceDictionaryCollection.cs
- GeometryValueSerializer.cs
- ListBoxItemWrapperAutomationPeer.cs
- DownloadProgressEventArgs.cs
- ProcessModuleDesigner.cs
- EntityContainerAssociationSetEnd.cs
- CompressionTransform.cs
- RangeContentEnumerator.cs
- CqlWriter.cs
- AttachedAnnotationChangedEventArgs.cs
- BezierSegment.cs
- CollectionViewGroup.cs
- XamlWrappingReader.cs
- XXXOnTypeBuilderInstantiation.cs
- IgnoreFileBuildProvider.cs
- TextEffectCollection.cs
- ResourceProperty.cs
- MulticastNotSupportedException.cs
- DataPagerFieldItem.cs
- URLAttribute.cs
- CultureInfo.cs
- SplitContainer.cs
- TaiwanCalendar.cs
- SynchronizationLockException.cs
- OdbcConnectionHandle.cs
- StringDictionary.cs
- MappingMetadataHelper.cs
- SqlTriggerContext.cs
- LassoHelper.cs
- ModelPerspective.cs
- TabletCollection.cs
- ReaderContextStackData.cs