Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Framework / System / Windows / Controls / Primitives / LayoutInformation.cs / 1 / LayoutInformation.cs
//------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, 2005 // // File: LayoutInformation // Spec: http://team/sites/Avalon/Specs/LayoutInformation%20class.doc //----------------------------------------------------------------------------- using System; using System.Windows.Media; using System.Windows.Threading; namespace System.Windows.Controls.Primitives { ////// This interface exposes additional layout information not exposed otherwise on FrameworkElement. /// This information is mostly used by the designer programs to produce additional visual clues for the user /// during interactive editing of the elements and layout properties. /// public static class LayoutInformation { private static void CheckArgument(FrameworkElement element) { if (element == null) { throw new ArgumentNullException("element"); } } ////// Returns the rectangle that represents Layout Slot - the layout partition reserved for the /// child by the layout parent. This info is in the coordinte system of the layout parent. /// public static Rect GetLayoutSlot(FrameworkElement element) { CheckArgument(element); return element.PreviousArrangeRect; } ////// Returns a geometry which was computed by layout for the child. This is generally a visible region of the child. /// Layout can compute automatic clip region when the child is larger then layout constraints or has ClipToBounds /// property set. Note that because of LayoutTransform, this could be a non-rectangular geometry. While general geometry is somewhat /// complex to operate with, it is possible to check if the Geometry returned is RectangularGeometry or, if not - use Geometry.Bounds /// property to get bounding box of the visible portion of the element. /// public static Geometry GetLayoutClip(FrameworkElement element) { CheckArgument(element); return element.GetLayoutClipInternal(); } ////// Returns a UIElement which was being processed by Layout Engine at the moment /// an unhandled exception casued Layout Engine to abandon the operation and unwind. /// Returns non-null result only for a period of time before next layout update is /// initiated. Can be examined from the application exception handler. /// /// The Dispatcher object that specifies the scope of operation. There is one Layout Engine per Dispatcher. public static UIElement GetLayoutExceptionElement(Dispatcher dispatcher) { if(dispatcher == null) throw new ArgumentNullException("dispatcher"); UIElement e = null; ContextLayoutManager lm = ContextLayoutManager.From(dispatcher); if(lm != null) e = lm.GetLastExceptionElement(); return e; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, 2005 // // File: LayoutInformation // Spec: http://team/sites/Avalon/Specs/LayoutInformation%20class.doc //----------------------------------------------------------------------------- using System; using System.Windows.Media; using System.Windows.Threading; namespace System.Windows.Controls.Primitives { ////// This interface exposes additional layout information not exposed otherwise on FrameworkElement. /// This information is mostly used by the designer programs to produce additional visual clues for the user /// during interactive editing of the elements and layout properties. /// public static class LayoutInformation { private static void CheckArgument(FrameworkElement element) { if (element == null) { throw new ArgumentNullException("element"); } } ////// Returns the rectangle that represents Layout Slot - the layout partition reserved for the /// child by the layout parent. This info is in the coordinte system of the layout parent. /// public static Rect GetLayoutSlot(FrameworkElement element) { CheckArgument(element); return element.PreviousArrangeRect; } ////// Returns a geometry which was computed by layout for the child. This is generally a visible region of the child. /// Layout can compute automatic clip region when the child is larger then layout constraints or has ClipToBounds /// property set. Note that because of LayoutTransform, this could be a non-rectangular geometry. While general geometry is somewhat /// complex to operate with, it is possible to check if the Geometry returned is RectangularGeometry or, if not - use Geometry.Bounds /// property to get bounding box of the visible portion of the element. /// public static Geometry GetLayoutClip(FrameworkElement element) { CheckArgument(element); return element.GetLayoutClipInternal(); } ////// Returns a UIElement which was being processed by Layout Engine at the moment /// an unhandled exception casued Layout Engine to abandon the operation and unwind. /// Returns non-null result only for a period of time before next layout update is /// initiated. Can be examined from the application exception handler. /// /// The Dispatcher object that specifies the scope of operation. There is one Layout Engine per Dispatcher. public static UIElement GetLayoutExceptionElement(Dispatcher dispatcher) { if(dispatcher == null) throw new ArgumentNullException("dispatcher"); UIElement e = null; ContextLayoutManager lm = ContextLayoutManager.From(dispatcher); if(lm != null) e = lm.GetLastExceptionElement(); return e; } } } // 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
- MultiPageTextView.cs
- DoubleAnimationUsingPath.cs
- Wildcard.cs
- ProxyAttribute.cs
- FrameDimension.cs
- XmlDocumentFragment.cs
- TextSelectionHighlightLayer.cs
- CodePrimitiveExpression.cs
- Button.cs
- TimeZoneInfo.cs
- InnerItemCollectionView.cs
- MappingSource.cs
- ConfigurationLocationCollection.cs
- HttpCookiesSection.cs
- PolicyValidator.cs
- TextEffectCollection.cs
- ExpressionVisitor.cs
- NameObjectCollectionBase.cs
- ComponentDispatcher.cs
- DataSysAttribute.cs
- SettingsPropertyValueCollection.cs
- RNGCryptoServiceProvider.cs
- DetailsViewRowCollection.cs
- DoWhile.cs
- EnumerationRangeValidationUtil.cs
- SafeWaitHandle.cs
- NetWebProxyFinder.cs
- Convert.cs
- DataGridView.cs
- ReflectTypeDescriptionProvider.cs
- HttpHeaderCollection.cs
- SimpleWorkerRequest.cs
- JapaneseCalendar.cs
- ExtensionQuery.cs
- ThrowHelper.cs
- CodeValidator.cs
- QueryConverter.cs
- MemoryMappedViewStream.cs
- Soap.cs
- GeneralTransform2DTo3D.cs
- externdll.cs
- HtmlWindowCollection.cs
- SendMailErrorEventArgs.cs
- MatchingStyle.cs
- PersonalizationProviderCollection.cs
- GlobalProxySelection.cs
- DataGridPagingPage.cs
- CommandDevice.cs
- Vector.cs
- sqlser.cs
- AppSettingsExpressionBuilder.cs
- ObjectView.cs
- XmlArrayAttribute.cs
- shaperfactoryquerycacheentry.cs
- RelationshipSet.cs
- MenuItemAutomationPeer.cs
- XpsS0ValidatingLoader.cs
- HtmlInputHidden.cs
- MatrixAnimationUsingPath.cs
- SimpleWorkerRequest.cs
- ControlType.cs
- StorageAssociationTypeMapping.cs
- EntityContainerEntitySetDefiningQuery.cs
- XmlDataLoader.cs
- ValidatingPropertiesEventArgs.cs
- RegistryConfigurationProvider.cs
- Message.cs
- StorageMappingItemCollection.cs
- ComponentResourceManager.cs
- KoreanLunisolarCalendar.cs
- CodeGenerator.cs
- SharedPersonalizationStateInfo.cs
- VisualStyleElement.cs
- AuthorizationRule.cs
- WebPartDescriptionCollection.cs
- ProfileParameter.cs
- CodeTypeDelegate.cs
- util.cs
- WorkflowInlining.cs
- BoundColumn.cs
- DataGridViewTextBoxColumn.cs
- FileDialog_Vista_Interop.cs
- SQLRoleProvider.cs
- CursorInteropHelper.cs
- DecoderFallback.cs
- SimpleType.cs
- HtmlInputCheckBox.cs
- TypeBuilder.cs
- BitFlagsGenerator.cs
- AutomationProperties.cs
- Rules.cs
- EraserBehavior.cs
- UserControl.cs
- ContentFileHelper.cs
- Utilities.cs
- DataAdapter.cs
- FileResponseElement.cs
- TextEndOfSegment.cs
- odbcmetadatafactory.cs
- DataGridViewTopRowAccessibleObject.cs