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
- ButtonFlatAdapter.cs
- ContentPlaceHolder.cs
- ArrayConverter.cs
- Fx.cs
- documentsequencetextview.cs
- MasterPageBuildProvider.cs
- StrongName.cs
- SmtpDigestAuthenticationModule.cs
- TransformValueSerializer.cs
- TouchPoint.cs
- XmlCharCheckingWriter.cs
- Command.cs
- SafeBuffer.cs
- IpcChannelHelper.cs
- ArraySortHelper.cs
- CreateUserWizard.cs
- SiteMapHierarchicalDataSourceView.cs
- StructuredTypeInfo.cs
- ImageConverter.cs
- TextStore.cs
- LineBreak.cs
- SecondaryIndexDefinition.cs
- PrimitiveType.cs
- Cursors.cs
- AliasedExpr.cs
- MetadataArtifactLoader.cs
- DirectoryObjectSecurity.cs
- ImageUrlEditor.cs
- XmlSchemaInfo.cs
- DrawingAttributes.cs
- ArglessEventHandlerProxy.cs
- Typography.cs
- SystemResourceHost.cs
- SmtpTransport.cs
- Int16Storage.cs
- RubberbandSelector.cs
- ScriptResourceHandler.cs
- ProtectedConfiguration.cs
- RegexTree.cs
- TextProperties.cs
- Trace.cs
- XmlUtil.cs
- CustomErrorCollection.cs
- SubqueryTrackingVisitor.cs
- ApplyImportsAction.cs
- UnmanagedMemoryStreamWrapper.cs
- GcHandle.cs
- RenderingEventArgs.cs
- FreezableDefaultValueFactory.cs
- ExplicitDiscriminatorMap.cs
- ModulesEntry.cs
- SiteOfOriginPart.cs
- DBParameter.cs
- ValueQuery.cs
- ExtractedStateEntry.cs
- WindowsBrush.cs
- OutputCacheSettingsSection.cs
- SystemNetHelpers.cs
- CheckoutException.cs
- PolicyValidationException.cs
- CatalogZoneDesigner.cs
- ByteAnimationUsingKeyFrames.cs
- ResourcesBuildProvider.cs
- ViewKeyConstraint.cs
- ColorAnimation.cs
- OletxResourceManager.cs
- SafeWaitHandle.cs
- Font.cs
- KeyInterop.cs
- ChannelManager.cs
- BinaryConverter.cs
- SecureUICommand.cs
- WebPartPersonalization.cs
- StylusButtonCollection.cs
- UnicodeEncoding.cs
- SafeRightsManagementHandle.cs
- SqlDataAdapter.cs
- ToolStripOverflow.cs
- EmbeddedMailObjectsCollection.cs
- Properties.cs
- SoundPlayerAction.cs
- MetadataStore.cs
- PropertyNames.cs
- CodeDOMUtility.cs
- PerspectiveCamera.cs
- StateManagedCollection.cs
- DeviceContexts.cs
- OrderByBuilder.cs
- StandardBindingReliableSessionElement.cs
- _NegoState.cs
- ForceCopyBuildProvider.cs
- HttpUnhandledOperationInvoker.cs
- ScalarType.cs
- DesignerSerializationVisibilityAttribute.cs
- RootBrowserWindowProxy.cs
- PropertyBuilder.cs
- CommandLineParser.cs
- MasterPageCodeDomTreeGenerator.cs
- ListDesigner.cs
- LayoutUtils.cs