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
- FamilyCollection.cs
- TdsParser.cs
- XmlSerializerImportOptions.cs
- AdornerDecorator.cs
- EntityDataReader.cs
- BindingMemberInfo.cs
- DataGridViewImageCell.cs
- TransactionScope.cs
- PrivilegeNotHeldException.cs
- DataGridColumnHeaderAutomationPeer.cs
- AppManager.cs
- ShapeTypeface.cs
- TraceSwitch.cs
- AssemblyBuilderData.cs
- ServiceNameCollection.cs
- ExpressionBuilderContext.cs
- GridViewSortEventArgs.cs
- _CommandStream.cs
- SymDocumentType.cs
- UInt64Converter.cs
- TrustManagerMoreInformation.cs
- MimePart.cs
- TabItemAutomationPeer.cs
- StylusDevice.cs
- XPathNodeIterator.cs
- LineGeometry.cs
- StringBuilder.cs
- EntityCommandDefinition.cs
- EnumUnknown.cs
- CharEntityEncoderFallback.cs
- Matrix3DStack.cs
- UseLicense.cs
- DbProviderFactories.cs
- SystemIPAddressInformation.cs
- EventProperty.cs
- BooleanStorage.cs
- SecurityPolicySection.cs
- ConstraintStruct.cs
- DataGridViewSortCompareEventArgs.cs
- WebPartCatalogAddVerb.cs
- CapabilitiesUse.cs
- columnmapkeybuilder.cs
- HtmlInputSubmit.cs
- HandlerBase.cs
- EncodingInfo.cs
- XmlCharCheckingWriter.cs
- DBSqlParser.cs
- IncrementalReadDecoders.cs
- TypeRestriction.cs
- LoginUtil.cs
- COM2ExtendedTypeConverter.cs
- DataServiceResponse.cs
- GeneralTransform3DCollection.cs
- ProxyWebPartManager.cs
- WindowsFormsLinkLabel.cs
- FixedSOMSemanticBox.cs
- MarshalByValueComponent.cs
- CleanUpVirtualizedItemEventArgs.cs
- Size3D.cs
- CheckBoxPopupAdapter.cs
- Function.cs
- BulletedList.cs
- StorageTypeMapping.cs
- XmlDownloadManager.cs
- StreamInfo.cs
- WindowsScroll.cs
- IdentityHolder.cs
- GeometryDrawing.cs
- ReachFixedPageSerializerAsync.cs
- UdpDiscoveryEndpointElement.cs
- XpsImage.cs
- UIElementAutomationPeer.cs
- FigureHelper.cs
- UserNameSecurityTokenAuthenticator.cs
- IApplicationTrustManager.cs
- Preprocessor.cs
- BitmapEffectCollection.cs
- InvokePattern.cs
- JsonStringDataContract.cs
- Sql8ExpressionRewriter.cs
- CloudCollection.cs
- ViewgenGatekeeper.cs
- TransactionScope.cs
- TimersDescriptionAttribute.cs
- GridViewRowEventArgs.cs
- Wildcard.cs
- Processor.cs
- OuterGlowBitmapEffect.cs
- QueryContinueDragEventArgs.cs
- IProvider.cs
- ManagementOptions.cs
- HandleExceptionArgs.cs
- DeploymentSection.cs
- CustomErrorsSection.cs
- XPathDescendantIterator.cs
- ReliabilityContractAttribute.cs
- RepeaterCommandEventArgs.cs
- TextContainerHelper.cs
- EntityViewGenerator.cs
- AssemblyResourceLoader.cs