Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- Int32CollectionValueSerializer.cs
- DesigntimeLicenseContextSerializer.cs
- GroupQuery.cs
- MenuItemBindingCollection.cs
- NotifyIcon.cs
- Int64KeyFrameCollection.cs
- ReadOnlyAttribute.cs
- InvalidDataException.cs
- OutputCacheSection.cs
- CodeLabeledStatement.cs
- RegistryDataKey.cs
- AutomationPatternInfo.cs
- PreviewKeyDownEventArgs.cs
- WinInetCache.cs
- EdmValidator.cs
- UIElement3D.cs
- ErrorFormatterPage.cs
- View.cs
- SequentialOutput.cs
- PerformanceCounterTraceRecord.cs
- EntityParameterCollection.cs
- XamlStream.cs
- UserPreferenceChangingEventArgs.cs
- TableLayoutSettings.cs
- DecoderBestFitFallback.cs
- ValueType.cs
- NumberSubstitution.cs
- IdentityNotMappedException.cs
- IPEndPoint.cs
- JsonGlobals.cs
- ResourceFallbackManager.cs
- Int64Storage.cs
- LinqTreeNodeEvaluator.cs
- PathFigureCollection.cs
- XmlDownloadManager.cs
- XmlNavigatorFilter.cs
- SqlCrossApplyToCrossJoin.cs
- PolicyUnit.cs
- ControlValuePropertyAttribute.cs
- UnsafeNativeMethods.cs
- _SingleItemRequestCache.cs
- X509IssuerSerialKeyIdentifierClause.cs
- PropertyGridCommands.cs
- NullEntityWrapper.cs
- WebHttpBindingCollectionElement.cs
- SingleStorage.cs
- SchemaSetCompiler.cs
- CaseInsensitiveComparer.cs
- XmlDigitalSignatureProcessor.cs
- ResourceProviderFactory.cs
- EllipseGeometry.cs
- ScalarConstant.cs
- TcpServerChannel.cs
- ProfilePropertyMetadata.cs
- ReferenceService.cs
- DragDrop.cs
- ResourceDictionaryCollection.cs
- Monitor.cs
- WinEventTracker.cs
- precedingquery.cs
- MediaScriptCommandRoutedEventArgs.cs
- XmlDocumentSerializer.cs
- JournalEntryListConverter.cs
- EntityDataSourceDesignerHelper.cs
- InheritanceContextHelper.cs
- PrintPreviewControl.cs
- CatalogPart.cs
- DataSourceView.cs
- DtrList.cs
- SqlClientWrapperSmiStreamChars.cs
- LocationUpdates.cs
- RemotingService.cs
- InfoCardXmlSerializer.cs
- ContentHostHelper.cs
- MouseOverProperty.cs
- SapiInterop.cs
- KnownColorTable.cs
- LineSegment.cs
- QueryContinueDragEvent.cs
- SystemWebSectionGroup.cs
- ProbeRequestResponseAsyncResult.cs
- PrimitiveCodeDomSerializer.cs
- XPathDocumentBuilder.cs
- GacUtil.cs
- NativeCppClassAttribute.cs
- PointLightBase.cs
- CultureMapper.cs
- FormViewInsertEventArgs.cs
- WebPermission.cs
- NavigationHelper.cs
- Rules.cs
- TextHidden.cs
- HandlerBase.cs
- _ConnectOverlappedAsyncResult.cs
- FrameDimension.cs
- RawStylusActions.cs
- Wildcard.cs
- ReceiveContextCollection.cs
- NotSupportedException.cs
- StorageComplexPropertyMapping.cs