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
- GroupBoxAutomationPeer.cs
- DecoderFallbackWithFailureFlag.cs
- LocatorPartList.cs
- ListItemConverter.cs
- SessionParameter.cs
- CodeTypeDeclaration.cs
- XsdCachingReader.cs
- PolicyException.cs
- HttpProcessUtility.cs
- KeyBinding.cs
- StringConverter.cs
- SQLInt32Storage.cs
- _CommandStream.cs
- XmlSerializerNamespaces.cs
- KeyTimeConverter.cs
- ReachSerializationCacheItems.cs
- odbcmetadatacolumnnames.cs
- HtmlInputImage.cs
- SqlParameter.cs
- BeginCreateSecurityTokenRequest.cs
- SplitterDesigner.cs
- MissingMethodException.cs
- SHA1CryptoServiceProvider.cs
- StylusLogic.cs
- FunctionDescription.cs
- TextRangeEditTables.cs
- FactoryId.cs
- ServerValidateEventArgs.cs
- SqlClientWrapperSmiStream.cs
- HMAC.cs
- TextUtf8RawTextWriter.cs
- ExternalCalls.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- SafeLocalAllocation.cs
- TreeViewImageKeyConverter.cs
- NameValueSectionHandler.cs
- Site.cs
- coordinator.cs
- TypeBuilder.cs
- SingleObjectCollection.cs
- KoreanCalendar.cs
- Vars.cs
- DataSourceSerializationException.cs
- ServicesSection.cs
- TextCharacters.cs
- Effect.cs
- BaseResourcesBuildProvider.cs
- ConfigurationManagerInternal.cs
- ResourcePart.cs
- LassoSelectionBehavior.cs
- SimpleMailWebEventProvider.cs
- SingleObjectCollection.cs
- ItemChangedEventArgs.cs
- RegexCharClass.cs
- CqlErrorHelper.cs
- nulltextnavigator.cs
- DependencyPropertyValueSerializer.cs
- SmtpFailedRecipientsException.cs
- WmlCommandAdapter.cs
- SerialPort.cs
- ScrollContentPresenter.cs
- EmptyQuery.cs
- TreeNodeBinding.cs
- BufferedGraphicsContext.cs
- DependencyPropertyHelper.cs
- TemplateBamlTreeBuilder.cs
- FrameDimension.cs
- SelectManyQueryOperator.cs
- CustomTokenProvider.cs
- CompiledAction.cs
- OptimizerPatterns.cs
- HasCopySemanticsAttribute.cs
- DesignerAttribute.cs
- ConnectionStringsSection.cs
- WindowsAuthenticationModule.cs
- StateBag.cs
- RuntimeIdentifierPropertyAttribute.cs
- HttpApplicationFactory.cs
- DnsPermission.cs
- QilTernary.cs
- DataListItemCollection.cs
- Util.cs
- CompletionBookmark.cs
- XdrBuilder.cs
- FileDialogCustomPlace.cs
- XmlIgnoreAttribute.cs
- HitTestWithGeometryDrawingContextWalker.cs
- EntityContainerEmitter.cs
- SecurityException.cs
- SafeArrayRankMismatchException.cs
- EtwTrace.cs
- ActivityInterfaces.cs
- IERequestCache.cs
- XmlDocumentFieldSchema.cs
- OleDbWrapper.cs
- OleDbStruct.cs
- AffineTransform3D.cs
- Bidi.cs
- DateTimeConverter2.cs
- AsyncSerializedWorker.cs