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
- WebAdminConfigurationHelper.cs
- WebPart.cs
- Message.cs
- EdmSchemaAttribute.cs
- httpstaticobjectscollection.cs
- SpinLock.cs
- Operators.cs
- XhtmlBasicValidatorAdapter.cs
- PropertyToken.cs
- Int16KeyFrameCollection.cs
- OutputScopeManager.cs
- RoleManagerSection.cs
- XmlReflectionImporter.cs
- SortDescription.cs
- ConfigXmlSignificantWhitespace.cs
- EnumType.cs
- LocalIdKeyIdentifierClause.cs
- DateTimeUtil.cs
- VoiceInfo.cs
- XmlLanguageConverter.cs
- ContextStack.cs
- LocationUpdates.cs
- ArrangedElementCollection.cs
- PointF.cs
- CodeTypeMember.cs
- Operand.cs
- EventlogProvider.cs
- DefaultEventAttribute.cs
- XsdDataContractExporter.cs
- HtmlTitle.cs
- DeploymentExceptionMapper.cs
- DataGridViewRowCollection.cs
- TimelineGroup.cs
- IdentityModelStringsVersion1.cs
- ButtonColumn.cs
- XhtmlBasicPanelAdapter.cs
- SingleBodyParameterMessageFormatter.cs
- SystemKeyConverter.cs
- SingleResultAttribute.cs
- PropertyIDSet.cs
- FilteredXmlReader.cs
- DecimalAverageAggregationOperator.cs
- ObjectTag.cs
- HtmlInputRadioButton.cs
- SynchronizedCollection.cs
- DocumentApplication.cs
- BezierSegment.cs
- TaskHelper.cs
- MenuItemBinding.cs
- EventsTab.cs
- StreamInfo.cs
- Section.cs
- ServiceNotStartedException.cs
- BindingExpression.cs
- DesignerResources.cs
- TraceXPathNavigator.cs
- ProcessInfo.cs
- SmtpNegotiateAuthenticationModule.cs
- Quaternion.cs
- Base64Decoder.cs
- SetIterators.cs
- MimeTypeMapper.cs
- HashMembershipCondition.cs
- SchemaCollectionPreprocessor.cs
- EventPrivateKey.cs
- IDQuery.cs
- HttpClientCertificate.cs
- XmlNode.cs
- ScrollBarRenderer.cs
- QueryStringHandler.cs
- DataGridViewHeaderCell.cs
- CLSCompliantAttribute.cs
- DataBinding.cs
- TrackPointCollection.cs
- TrackBar.cs
- PanelStyle.cs
- ConsumerConnectionPointCollection.cs
- ForwardPositionQuery.cs
- ComponentResourceKeyConverter.cs
- XmlUrlEditor.cs
- RectAnimation.cs
- ErasingStroke.cs
- FormsAuthenticationCredentials.cs
- GridViewColumnHeader.cs
- LabelAutomationPeer.cs
- TableRow.cs
- X509Extension.cs
- MobileControl.cs
- Int16Converter.cs
- Cursor.cs
- DefinitionBase.cs
- TextEndOfParagraph.cs
- EdgeProfileValidation.cs
- ConsoleCancelEventArgs.cs
- DropShadowBitmapEffect.cs
- TableSectionStyle.cs
- ChannelEndpointElementCollection.cs
- Mapping.cs
- ProfileService.cs
- ReadOnlyDictionary.cs