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
- ChangePassword.cs
- CodeFieldReferenceExpression.cs
- XmlNamespaceDeclarationsAttribute.cs
- ApplicationContext.cs
- XmlHierarchyData.cs
- GraphicsContext.cs
- BlockExpression.cs
- ViewgenContext.cs
- HasCopySemanticsAttribute.cs
- SubstitutionDesigner.cs
- TempFiles.cs
- RegexGroupCollection.cs
- BitmapDecoder.cs
- XmlSchemaGroup.cs
- ModelUIElement3D.cs
- GridItemPatternIdentifiers.cs
- TemplateBindingExtension.cs
- RefreshEventArgs.cs
- ContentPlaceHolder.cs
- StateElement.cs
- TableCell.cs
- TransportContext.cs
- VSWCFServiceContractGenerator.cs
- DataExpression.cs
- RawStylusInputCustomDataList.cs
- TextShapeableCharacters.cs
- Type.cs
- QuadraticBezierSegment.cs
- CheckBox.cs
- CredentialManagerDialog.cs
- TagElement.cs
- GridItemPattern.cs
- RadioButtonPopupAdapter.cs
- ConfigsHelper.cs
- ResXResourceSet.cs
- UpDownEvent.cs
- DecoderFallback.cs
- CodeDOMUtility.cs
- DecoderFallback.cs
- ContentPlaceHolder.cs
- LassoHelper.cs
- PropertyTabAttribute.cs
- HtmlTitle.cs
- NeutralResourcesLanguageAttribute.cs
- ClockGroup.cs
- ParenthesizePropertyNameAttribute.cs
- BaseDataListActionList.cs
- BitmapSizeOptions.cs
- XmlValueConverter.cs
- DataServiceRequestArgs.cs
- XmlComplianceUtil.cs
- FrameworkContentElement.cs
- MonitoringDescriptionAttribute.cs
- ProcessModelInfo.cs
- Monitor.cs
- Animatable.cs
- CodeRegionDirective.cs
- SafeMILHandle.cs
- Int32Rect.cs
- BackoffTimeoutHelper.cs
- Native.cs
- ListBindingHelper.cs
- DataServiceClientException.cs
- WebReferencesBuildProvider.cs
- SpecularMaterial.cs
- ColorAnimationBase.cs
- Span.cs
- TabItem.cs
- SqlFunctionAttribute.cs
- KeyEventArgs.cs
- ComboBox.cs
- GeometryValueSerializer.cs
- PartBasedPackageProperties.cs
- PathSegmentCollection.cs
- FloaterBaseParaClient.cs
- Stream.cs
- MessageDecoder.cs
- DynamicAttribute.cs
- SimpleLine.cs
- ReadOnlyTernaryTree.cs
- IConvertible.cs
- StoragePropertyMapping.cs
- CompilerInfo.cs
- ZipArchive.cs
- ImageAutomationPeer.cs
- AnalyzedTree.cs
- BooleanFunctions.cs
- ListViewItemSelectionChangedEvent.cs
- ExtensionDataObject.cs
- HtmlLink.cs
- SchemaComplexType.cs
- DbDataAdapter.cs
- DataGridViewCellPaintingEventArgs.cs
- FlatButtonAppearance.cs
- SinglePhaseEnlistment.cs
- _LocalDataStore.cs
- TransactionTraceIdentifier.cs
- LogoValidationException.cs
- LinkedList.cs
- Wildcard.cs