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
- CodeGroup.cs
- MarkupWriter.cs
- coordinatorfactory.cs
- StringWriter.cs
- DocumentViewerBase.cs
- DynamicDataRoute.cs
- XmlWellformedWriter.cs
- AlphabeticalEnumConverter.cs
- LinkArea.cs
- MediaElementAutomationPeer.cs
- AllMembershipCondition.cs
- ModelItemDictionary.cs
- NativeMethods.cs
- HwndAppCommandInputProvider.cs
- SafeIUnknown.cs
- _HeaderInfo.cs
- UserPersonalizationStateInfo.cs
- Metafile.cs
- SubtreeProcessor.cs
- TdsParserSafeHandles.cs
- ParserContext.cs
- XmlSerializerVersionAttribute.cs
- DetailsViewDeletedEventArgs.cs
- KeyFrames.cs
- ToolStripItemTextRenderEventArgs.cs
- MissingManifestResourceException.cs
- ComboBox.cs
- BooleanStorage.cs
- DataList.cs
- CultureMapper.cs
- PagedDataSource.cs
- XmlElementAttribute.cs
- UIElementPropertyUndoUnit.cs
- EdmItemCollection.OcAssemblyCache.cs
- ReadOnlyDictionary.cs
- SeekableReadStream.cs
- XPathBuilder.cs
- _UriSyntax.cs
- ContextMenu.cs
- ImageDrawing.cs
- WriterOutput.cs
- SiteOfOriginPart.cs
- XsltInput.cs
- NativeCppClassAttribute.cs
- SelectionHighlightInfo.cs
- MimeMultiPart.cs
- ControlPropertyNameConverter.cs
- SqlAliasesReferenced.cs
- OleDbPropertySetGuid.cs
- cookiecollection.cs
- GraphicsContainer.cs
- PtsContext.cs
- NativeRightsManagementAPIsStructures.cs
- ChildChangedEventArgs.cs
- autovalidator.cs
- EmptyCollection.cs
- WindowsListViewItemCheckBox.cs
- TemplateKeyConverter.cs
- versioninfo.cs
- Profiler.cs
- PaintEvent.cs
- BamlResourceSerializer.cs
- path.cs
- TdsParserStaticMethods.cs
- IntPtr.cs
- EmptyReadOnlyDictionaryInternal.cs
- filewebresponse.cs
- PrintPreviewGraphics.cs
- SQLMoney.cs
- GridViewUpdatedEventArgs.cs
- XmlHierarchicalDataSourceView.cs
- EntityClassGenerator.cs
- DependencyObject.cs
- TheQuery.cs
- SqlWebEventProvider.cs
- TrustSection.cs
- PaginationProgressEventArgs.cs
- RuntimeConfigLKG.cs
- DataGridViewHeaderCell.cs
- Renderer.cs
- Restrictions.cs
- XmlUtilWriter.cs
- PointCollection.cs
- DataSourceExpressionCollection.cs
- SqlProviderServices.cs
- HttpCapabilitiesBase.cs
- ContentPresenter.cs
- SelectionEditor.cs
- SystemUdpStatistics.cs
- TabControl.cs
- MimeImporter.cs
- StrongNamePublicKeyBlob.cs
- StickyNote.cs
- ToolBar.cs
- AutoGeneratedField.cs
- Win32KeyboardDevice.cs
- UIPropertyMetadata.cs
- TextTabProperties.cs
- AutomationAttributeInfo.cs
- WebConfigurationManager.cs