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
- OdbcStatementHandle.cs
- ConnectionManagementSection.cs
- ProcessThread.cs
- IndexOutOfRangeException.cs
- LocalizableAttribute.cs
- GatewayIPAddressInformationCollection.cs
- DisposableCollectionWrapper.cs
- Models.cs
- WebPartConnectionsCancelVerb.cs
- SafeLibraryHandle.cs
- ByteStreamMessageUtility.cs
- ToolStripItem.cs
- mda.cs
- HtmlButton.cs
- QilList.cs
- DataGridViewSelectedRowCollection.cs
- UndoManager.cs
- StatusBarPanelClickEvent.cs
- DesignerLinkAdapter.cs
- MessageBuilder.cs
- WindowHideOrCloseTracker.cs
- CompiledXpathExpr.cs
- XmlWriter.cs
- ModelTreeEnumerator.cs
- TypeUsage.cs
- VScrollBar.cs
- ColorInterpolationModeValidation.cs
- SecurityTokenTypes.cs
- InvalidPrinterException.cs
- ResourceCategoryAttribute.cs
- EnumerableRowCollectionExtensions.cs
- ClientRuntimeConfig.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- PictureBox.cs
- TextViewBase.cs
- BitmapSourceSafeMILHandle.cs
- UInt32Storage.cs
- CodeIdentifier.cs
- xsdvalidator.cs
- CharKeyFrameCollection.cs
- XmlNotation.cs
- Directory.cs
- DuplexSecurityProtocolFactory.cs
- DefaultShape.cs
- DirtyTextRange.cs
- ShapingWorkspace.cs
- ProfileEventArgs.cs
- BitmapFrame.cs
- HtmlTableRowCollection.cs
- ObjectDataProvider.cs
- MarginsConverter.cs
- MailAddressParser.cs
- ClientBuildManagerCallback.cs
- DataGridViewCellFormattingEventArgs.cs
- DBSchemaRow.cs
- SqlConnection.cs
- SourceSwitch.cs
- XmlSchemaAny.cs
- DetailsView.cs
- FixedTextBuilder.cs
- InternalDispatchObject.cs
- DragSelectionMessageFilter.cs
- QilTernary.cs
- UrlPath.cs
- Operator.cs
- CodeCatchClauseCollection.cs
- ValueConversionAttribute.cs
- Util.cs
- AnimationException.cs
- DesignerTransactionCloseEvent.cs
- Margins.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- DataGridCell.cs
- MarshalByRefObject.cs
- TreeIterators.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- WebEventTraceProvider.cs
- HttpStreamXmlDictionaryWriter.cs
- EventLogPermissionEntry.cs
- ReaderOutput.cs
- XamlTreeBuilder.cs
- ProxyAttribute.cs
- FactoryMaker.cs
- CharacterBufferReference.cs
- ImageAnimator.cs
- IndicCharClassifier.cs
- FlowDocumentFormatter.cs
- ZipIOFileItemStream.cs
- SourceFilter.cs
- TypeElement.cs
- ValueUtilsSmi.cs
- SqlBuilder.cs
- ApplicationSecurityManager.cs
- unsafenativemethodstextservices.cs
- FamilyCollection.cs
- TypeExtensionConverter.cs
- RawUIStateInputReport.cs
- tooltip.cs
- NamespaceTable.cs
- X509ChainPolicy.cs