Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Controls / Primitives / LayoutInformation.cs / 1305600 / 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
- DetailsViewRow.cs
- XmlSchemaSimpleContent.cs
- WinFormsSecurity.cs
- BaseTemplateCodeDomTreeGenerator.cs
- JapaneseLunisolarCalendar.cs
- WindowsPen.cs
- FormsAuthenticationEventArgs.cs
- TypeBuilderInstantiation.cs
- TraceUtility.cs
- _FtpDataStream.cs
- Base64Decoder.cs
- AutomationElementIdentifiers.cs
- SqlWriter.cs
- XmlSiteMapProvider.cs
- fixedPageContentExtractor.cs
- SortableBindingList.cs
- TraceSection.cs
- Decoder.cs
- EndPoint.cs
- CryptoApi.cs
- BamlMapTable.cs
- SqlDuplicator.cs
- CommonObjectSecurity.cs
- WindowsRichEdit.cs
- DrawingGroup.cs
- ValidationEventArgs.cs
- PasswordRecovery.cs
- SamlConstants.cs
- ExpressionEditorAttribute.cs
- DynamicDataResources.Designer.cs
- SqlDataSource.cs
- GZipStream.cs
- HighContrastHelper.cs
- CodeMemberMethod.cs
- AstNode.cs
- Funcletizer.cs
- SchemaEntity.cs
- SqlInternalConnectionSmi.cs
- RectangleGeometry.cs
- ModuleBuilder.cs
- EditorAttribute.cs
- ValidationSummary.cs
- BaseProcessor.cs
- RenderOptions.cs
- MissingManifestResourceException.cs
- ToolStripSystemRenderer.cs
- ToolStripMenuItemDesigner.cs
- GroupBox.cs
- MDIClient.cs
- DefaultDiscoveryServiceExtension.cs
- HwndKeyboardInputProvider.cs
- StringUtil.cs
- ReadWriteObjectLock.cs
- ValueUnavailableException.cs
- LocationUpdates.cs
- PeerInvitationResponse.cs
- ListGeneralPage.cs
- AppDomainShutdownMonitor.cs
- SqlCacheDependency.cs
- ExtensionElementCollection.cs
- XsltCompileContext.cs
- RoleService.cs
- PaginationProgressEventArgs.cs
- ContentElement.cs
- CheckBox.cs
- _OverlappedAsyncResult.cs
- SymDocumentType.cs
- GenericTypeParameterBuilder.cs
- DocumentXmlWriter.cs
- RSACryptoServiceProvider.cs
- Ipv6Element.cs
- XmlDataCollection.cs
- MetadataItemCollectionFactory.cs
- DragStartedEventArgs.cs
- DataKeyCollection.cs
- EdgeProfileValidation.cs
- TextEditorCopyPaste.cs
- SingleKeyFrameCollection.cs
- DrawingGroupDrawingContext.cs
- BufferModeSettings.cs
- PkcsUtils.cs
- ServiceReflector.cs
- ObjectHelper.cs
- ZipFileInfo.cs
- MouseOverProperty.cs
- TableStyle.cs
- JumpItem.cs
- Image.cs
- PersonalizationProviderCollection.cs
- ValueExpressions.cs
- SafeCloseHandleCritical.cs
- UpdateProgress.cs
- ProgressBar.cs
- TargetControlTypeAttribute.cs
- webclient.cs
- RemotingException.cs
- RelationshipEntry.cs
- ProcessHost.cs
- EmptyEnumerable.cs
- WMICapabilities.cs