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
- FrameworkTemplate.cs
- TableStyle.cs
- ToolTip.cs
- EntityProviderFactory.cs
- RootBuilder.cs
- Brushes.cs
- ExpressionHelper.cs
- XmlDeclaration.cs
- WebPartsPersonalizationAuthorization.cs
- DbConnectionStringCommon.cs
- SqlExpressionNullability.cs
- AdornerDecorator.cs
- CodeAccessSecurityEngine.cs
- IWorkflowDebuggerService.cs
- SqlConnectionStringBuilder.cs
- StatusBarDrawItemEvent.cs
- _AutoWebProxyScriptWrapper.cs
- Point3DAnimationUsingKeyFrames.cs
- PenLineCapValidation.cs
- ResourcePermissionBase.cs
- PrintingPermissionAttribute.cs
- OptimalTextSource.cs
- EntityDataSourceDataSelectionPanel.cs
- StreamMarshaler.cs
- GenericQueueSurrogate.cs
- QuerySafeNavigator.cs
- handlecollector.cs
- EUCJPEncoding.cs
- SimpleType.cs
- XmlSchemaSequence.cs
- FlowLayoutSettings.cs
- TypefaceCollection.cs
- CompositionAdorner.cs
- SendKeys.cs
- FullTextBreakpoint.cs
- BindingOperations.cs
- XmlSerializationGeneratedCode.cs
- XPSSignatureDefinition.cs
- RijndaelCryptoServiceProvider.cs
- CanExecuteRoutedEventArgs.cs
- AtomEntry.cs
- SqlTopReducer.cs
- GridViewAutoFormat.cs
- Relationship.cs
- ActivityExecutionContext.cs
- ItemList.cs
- XmlUTF8TextReader.cs
- AppearanceEditorPart.cs
- DataRelationCollection.cs
- TableLayoutRowStyleCollection.cs
- SmiConnection.cs
- ITreeGenerator.cs
- SystemResources.cs
- RewritingPass.cs
- Main.cs
- ValueHandle.cs
- Assembly.cs
- MenuTracker.cs
- XsltSettings.cs
- ToolStripRenderEventArgs.cs
- Char.cs
- TextBoxLine.cs
- PerformanceCounter.cs
- FamilyMapCollection.cs
- GeometryHitTestParameters.cs
- WebExceptionStatus.cs
- PostBackOptions.cs
- AsmxEndpointPickerExtension.cs
- TypeConverterAttribute.cs
- ModelUIElement3D.cs
- BinaryMethodMessage.cs
- CacheForPrimitiveTypes.cs
- XmlSchemaAnnotated.cs
- BaseProcessor.cs
- ScrollContentPresenter.cs
- WindowsStatic.cs
- SQLConvert.cs
- DiagnosticsConfiguration.cs
- ConfigXmlReader.cs
- Tokenizer.cs
- XmlCustomFormatter.cs
- CannotUnloadAppDomainException.cs
- HttpServerUtilityWrapper.cs
- PlacementWorkspace.cs
- GeometryGroup.cs
- AudioFormatConverter.cs
- NetworkAddressChange.cs
- FunctionDetailsReader.cs
- SplineKeyFrames.cs
- TableHeaderCell.cs
- GacUtil.cs
- GradientBrush.cs
- ResourceBinder.cs
- Utils.cs
- EventNotify.cs
- KeyMatchBuilder.cs
- InputScope.cs
- ForEachAction.cs
- CompositeKey.cs
- LoadGrammarCompletedEventArgs.cs