Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- XPathParser.cs
- EventProxy.cs
- ReliableChannelListener.cs
- SrgsText.cs
- PropertyChangedEventArgs.cs
- BypassElement.cs
- DropTarget.cs
- ClientProxyGenerator.cs
- ProgressBarHighlightConverter.cs
- UnmanagedMemoryStreamWrapper.cs
- WindowsScroll.cs
- OracleSqlParser.cs
- MsdtcClusterUtils.cs
- Schema.cs
- Encoding.cs
- BaseCAMarshaler.cs
- PageCatalogPart.cs
- HttpClientCertificate.cs
- CodeMemberMethod.cs
- IISUnsafeMethods.cs
- CultureSpecificCharacterBufferRange.cs
- cache.cs
- PrePostDescendentsWalker.cs
- ProgramPublisher.cs
- TextMessageEncoder.cs
- IconHelper.cs
- wmiutil.cs
- DependencyPropertyChangedEventArgs.cs
- DataServiceRequestException.cs
- SortedSetDebugView.cs
- ColorInterpolationModeValidation.cs
- DoubleUtil.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- Internal.cs
- ScrollViewerAutomationPeer.cs
- RowToParametersTransformer.cs
- PageEventArgs.cs
- CachedPathData.cs
- BamlMapTable.cs
- GlyphShapingProperties.cs
- TreeView.cs
- CultureSpecificStringDictionary.cs
- EventlogProvider.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- WebPartConnectVerb.cs
- WsatEtwTraceListener.cs
- AutomationElementCollection.cs
- MediaSystem.cs
- XmlImplementation.cs
- DataServiceContext.cs
- RoleService.cs
- BufferedReadStream.cs
- SimpleBitVector32.cs
- BrushValueSerializer.cs
- PathParser.cs
- DoubleAnimationUsingPath.cs
- DeviceOverridableAttribute.cs
- SmtpException.cs
- DocumentPageViewAutomationPeer.cs
- MaterialGroup.cs
- PathSegmentCollection.cs
- SqlUserDefinedTypeAttribute.cs
- DbCommandTree.cs
- TableLayoutSettings.cs
- SortQuery.cs
- SamlAttributeStatement.cs
- TreeBuilderXamlTranslator.cs
- StyleCollection.cs
- LabelEditEvent.cs
- OperatingSystem.cs
- Calendar.cs
- ToolStripItemGlyph.cs
- Panel.cs
- XmlStreamStore.cs
- HtmlGenericControl.cs
- DataGridAddNewRow.cs
- DummyDataSource.cs
- Transform3DGroup.cs
- XmlStringTable.cs
- QilIterator.cs
- OciHandle.cs
- SspiHelper.cs
- DiscoveryClientDuplexChannel.cs
- JsonClassDataContract.cs
- ThicknessAnimation.cs
- ImplicitInputBrush.cs
- securestring.cs
- TreeViewImageKeyConverter.cs
- ListDictionaryInternal.cs
- ProcessProtocolHandler.cs
- ActivityBindForm.Designer.cs
- SevenBitStream.cs
- SystemIcons.cs
- OracleBFile.cs
- HtmlInputPassword.cs
- MinMaxParagraphWidth.cs
- ISO2022Encoding.cs
- JournalEntry.cs
- HandlerMappingMemo.cs
- HyperLinkColumn.cs