Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Controls / Primitives / LayoutInformation.cs / 1305600 / 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
- HtmlWindowCollection.cs
- ClaimComparer.cs
- TextLineResult.cs
- PersonalizationDictionary.cs
- PieceNameHelper.cs
- XamlTreeBuilder.cs
- PriorityQueue.cs
- ReliableSessionElement.cs
- CornerRadiusConverter.cs
- InertiaRotationBehavior.cs
- InkCanvasSelection.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- ColumnResizeAdorner.cs
- DatagridviewDisplayedBandsData.cs
- ConnectionStringSettingsCollection.cs
- NetSectionGroup.cs
- XmlILIndex.cs
- EventLevel.cs
- CipherData.cs
- HexParser.cs
- Label.cs
- categoryentry.cs
- AccessDataSourceView.cs
- RectangleGeometry.cs
- ContractCodeDomInfo.cs
- RewritingValidator.cs
- ZipIOExtraFieldElement.cs
- JsonDeserializer.cs
- EntityProxyFactory.cs
- PathGeometry.cs
- OutputCacheSection.cs
- QilPatternVisitor.cs
- BasePattern.cs
- CharacterString.cs
- HwndMouseInputProvider.cs
- ToolboxControl.cs
- SectionInformation.cs
- DialogResultConverter.cs
- ExceptionHandlerDesigner.cs
- EFColumnProvider.cs
- EntityDesignerUtils.cs
- MimeParameter.cs
- XPathParser.cs
- CapabilitiesPattern.cs
- ProfilePropertySettings.cs
- EntityModelSchemaGenerator.cs
- AutomationPropertyInfo.cs
- Vector.cs
- TraceSection.cs
- OracleParameterBinding.cs
- X509CertificateCollection.cs
- TemplateAction.cs
- IconConverter.cs
- TextSegment.cs
- DictionaryBase.cs
- KnowledgeBase.cs
- MaskedTextBoxTextEditor.cs
- XPathAncestorQuery.cs
- InternalException.cs
- PeerContact.cs
- MatrixTransform.cs
- VisualState.cs
- Highlights.cs
- StreamUpgradeProvider.cs
- TraceLevelStore.cs
- RelationshipEndCollection.cs
- ActiveDocumentEvent.cs
- FileStream.cs
- RSAOAEPKeyExchangeDeformatter.cs
- EmbeddedObject.cs
- LifetimeServices.cs
- BufferedGraphicsContext.cs
- SpnEndpointIdentityExtension.cs
- DataControlImageButton.cs
- Tile.cs
- RSAPKCS1SignatureDeformatter.cs
- DocumentPageHost.cs
- GenericTypeParameterBuilder.cs
- PopupRoot.cs
- WebPartVerb.cs
- DocumentCollection.cs
- WebDisplayNameAttribute.cs
- TypefaceMap.cs
- NativeMethods.cs
- WebDescriptionAttribute.cs
- RelationshipConstraintValidator.cs
- xmlglyphRunInfo.cs
- RootBrowserWindowProxy.cs
- ToolBarOverflowPanel.cs
- SEHException.cs
- MembershipPasswordException.cs
- HtmlTableRow.cs
- SQLChars.cs
- ProviderUtil.cs
- ControlHelper.cs
- IntegerValidatorAttribute.cs
- WinEventHandler.cs
- RegexCompilationInfo.cs
- Wizard.cs
- DependencyProperty.cs