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
- InputEventArgs.cs
- SchemaImporterExtensionsSection.cs
- PersonalizableAttribute.cs
- ReadOnlyCollectionBase.cs
- CodeDomLocalizationProvider.cs
- ListViewItem.cs
- PropertyItemInternal.cs
- DockingAttribute.cs
- BaseCollection.cs
- ListViewHitTestInfo.cs
- ProfessionalColors.cs
- AsymmetricKeyExchangeDeformatter.cs
- ListItemConverter.cs
- EntityCommandCompilationException.cs
- ProvideValueServiceProvider.cs
- CodeCommentStatementCollection.cs
- QilXmlReader.cs
- TimersDescriptionAttribute.cs
- InvokeMethodActivityDesigner.cs
- CodeDelegateCreateExpression.cs
- BaseAddressElement.cs
- Activation.cs
- documentsequencetextcontainer.cs
- CheckBoxList.cs
- ListViewGroupConverter.cs
- RuntimeUtils.cs
- ProgressBarBrushConverter.cs
- HttpContext.cs
- FlowDocumentPage.cs
- CheckableControlBaseAdapter.cs
- LayoutSettings.cs
- InputLanguageProfileNotifySink.cs
- BrowserCapabilitiesCodeGenerator.cs
- BaseTemplateCodeDomTreeGenerator.cs
- MultiView.cs
- SafeViewOfFileHandle.cs
- IIS7UserPrincipal.cs
- SmiEventStream.cs
- GcHandle.cs
- KeyFrames.cs
- AutomationPattern.cs
- XmlHierarchyData.cs
- EndOfStreamException.cs
- CursorInteropHelper.cs
- HttpAsyncResult.cs
- EntityContainerEmitter.cs
- TableProviderWrapper.cs
- XmlDocumentFragment.cs
- ClientSettingsProvider.cs
- CompilerErrorCollection.cs
- OleDbDataAdapter.cs
- IOThreadScheduler.cs
- DescendentsWalkerBase.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- WebPartConnectionsCloseVerb.cs
- XmlIlTypeHelper.cs
- ThreadInterruptedException.cs
- EncodingDataItem.cs
- Parallel.cs
- MILUtilities.cs
- AdRotatorDesigner.cs
- RuleSettingsCollection.cs
- CreateBookmarkScope.cs
- CultureMapper.cs
- ConnectionManagementSection.cs
- WinFormsSecurity.cs
- DataColumnMappingCollection.cs
- SiteMapDataSource.cs
- MetadataArtifactLoaderFile.cs
- DigitShape.cs
- DrawingCollection.cs
- ChangePassword.cs
- FloatUtil.cs
- SponsorHelper.cs
- ProfileService.cs
- TextEffect.cs
- StorageFunctionMapping.cs
- ResourceReferenceExpressionConverter.cs
- PersonalizationProvider.cs
- AnnotationElement.cs
- LocalIdKeyIdentifierClause.cs
- METAHEADER.cs
- XmlTypeMapping.cs
- HttpEncoderUtility.cs
- FindResponse.cs
- sqlnorm.cs
- EntitySqlQueryState.cs
- XPathException.cs
- FileDetails.cs
- SimpleHandlerBuildProvider.cs
- InternalConfigHost.cs
- InteropAutomationProvider.cs
- UserControl.cs
- SafeNativeMemoryHandle.cs
- Matrix.cs
- CornerRadius.cs
- KeyProperty.cs
- LiteralTextParser.cs
- StorageAssociationTypeMapping.cs
- AutomationPatternInfo.cs