Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------------------- // // 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
- SqlNamer.cs
- ControlPropertyNameConverter.cs
- GridViewSelectEventArgs.cs
- RepeatBehavior.cs
- DeviceSpecificDesigner.cs
- WindowsBrush.cs
- SiteMapProvider.cs
- SQLInt16Storage.cs
- ValidationHelpers.cs
- SecurityToken.cs
- SvcMapFile.cs
- IsolatedStorage.cs
- DetailsView.cs
- StorageEntityTypeMapping.cs
- RefType.cs
- Script.cs
- SqlProfileProvider.cs
- ConsoleCancelEventArgs.cs
- ManipulationDevice.cs
- StringStorage.cs
- TemplateKey.cs
- TextFragmentEngine.cs
- Timer.cs
- InOutArgument.cs
- WizardPanel.cs
- PageEventArgs.cs
- NativeMethods.cs
- EntitySqlException.cs
- EventData.cs
- WindowsIdentity.cs
- WriteableBitmap.cs
- EntityCommandDefinition.cs
- RunClient.cs
- ResourceKey.cs
- PackageRelationshipCollection.cs
- RIPEMD160.cs
- DataTableMappingCollection.cs
- KeyedQueue.cs
- DataBoundControlAdapter.cs
- SchemaElement.cs
- ToolboxControl.cs
- LayoutTable.cs
- SQLDateTime.cs
- CallbackValidatorAttribute.cs
- MatrixCamera.cs
- SqlDataSourceEnumerator.cs
- DbConnectionStringCommon.cs
- PrintDocument.cs
- IntSumAggregationOperator.cs
- Switch.cs
- Codec.cs
- DecoderNLS.cs
- GridViewColumnCollectionChangedEventArgs.cs
- PermissionListSet.cs
- BitmapPalettes.cs
- ValidateNames.cs
- PictureBox.cs
- VirtualDirectoryMappingCollection.cs
- MethodAccessException.cs
- FolderLevelBuildProviderCollection.cs
- ServerIdentity.cs
- Table.cs
- Soap11ServerProtocol.cs
- XmlQueryOutput.cs
- ReadOnlyMetadataCollection.cs
- OpCopier.cs
- ExternalDataExchangeClient.cs
- StackBuilderSink.cs
- StreamMarshaler.cs
- SymbolType.cs
- AccessDataSourceView.cs
- BitmapEffectInput.cs
- ToolStripItemClickedEventArgs.cs
- OleAutBinder.cs
- BamlResourceDeserializer.cs
- ElementHostPropertyMap.cs
- OleServicesContext.cs
- WorkflowRuntime.cs
- CompiledRegexRunner.cs
- DataObjectMethodAttribute.cs
- DataGridBeginningEditEventArgs.cs
- recordstatescratchpad.cs
- FastEncoderWindow.cs
- DefaultBinder.cs
- Renderer.cs
- BinaryReader.cs
- LambdaCompiler.Logical.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- Console.cs
- ReadOnlyCollectionBase.cs
- ForwardPositionQuery.cs
- ExternalCalls.cs
- ObjectDataSourceStatusEventArgs.cs
- Timeline.cs
- RectAnimationClockResource.cs
- SHA256Managed.cs
- Property.cs
- MobileCapabilities.cs
- BooleanExpr.cs
- Executor.cs