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
- CornerRadiusConverter.cs
- Attachment.cs
- DocumentReferenceCollection.cs
- QueueNameHelper.cs
- OdbcParameter.cs
- NavigationCommands.cs
- SelectionItemProviderWrapper.cs
- AlternateView.cs
- Root.cs
- XamlFigureLengthSerializer.cs
- XmlSchemaSimpleType.cs
- AncestorChangedEventArgs.cs
- ChildrenQuery.cs
- RegularExpressionValidator.cs
- PartitionerStatic.cs
- MetadataPropertyvalue.cs
- RenderingBiasValidation.cs
- Int16Animation.cs
- DependencyProperty.cs
- WindowsHyperlink.cs
- AdapterUtil.cs
- Int32Converter.cs
- ResourcePool.cs
- COM2ColorConverter.cs
- CollectionViewGroup.cs
- LookupBindingPropertiesAttribute.cs
- _KerberosClient.cs
- AsyncDataRequest.cs
- NumberFunctions.cs
- VersionedStream.cs
- RecipientInfo.cs
- CompiledXpathExpr.cs
- Set.cs
- CuspData.cs
- InkCanvasFeedbackAdorner.cs
- PointUtil.cs
- ModelPropertyDescriptor.cs
- DataGridViewCellConverter.cs
- MDIWindowDialog.cs
- VirtualizedItemPattern.cs
- ListView.cs
- ComponentConverter.cs
- RotateTransform3D.cs
- WorkflowMarkupElementEventArgs.cs
- SystemIPGlobalProperties.cs
- BCryptNative.cs
- SqlCachedBuffer.cs
- Activity.cs
- DesignerForm.cs
- CTreeGenerator.cs
- StateBag.cs
- dtdvalidator.cs
- ConfigXmlDocument.cs
- ThicknessConverter.cs
- HashCodeCombiner.cs
- TypeBrowser.xaml.cs
- MimePart.cs
- Freezable.cs
- Internal.cs
- TypeExtensionConverter.cs
- ToolStripContainer.cs
- XmlSortKeyAccumulator.cs
- QilTargetType.cs
- RuntimeIdentifierPropertyAttribute.cs
- ApplyTemplatesAction.cs
- FilteredDataSetHelper.cs
- AggregationMinMaxHelpers.cs
- NullableLongSumAggregationOperator.cs
- UrlMappingCollection.cs
- XmlSchemaInferenceException.cs
- SqlDataSourceAdvancedOptionsForm.cs
- TdsParserStaticMethods.cs
- WindowsListBox.cs
- SHA512.cs
- TypeConverterHelper.cs
- EndCreateSecurityTokenRequest.cs
- HeaderCollection.cs
- PropertyValueUIItem.cs
- RelatedImageListAttribute.cs
- DataViewManagerListItemTypeDescriptor.cs
- ACE.cs
- Dynamic.cs
- TypeConverterValueSerializer.cs
- SecurityPermission.cs
- CompressStream.cs
- CapabilitiesPattern.cs
- HMACSHA512.cs
- SqlInternalConnectionSmi.cs
- PreloadedPackages.cs
- X509CertificateCollection.cs
- SqlCommandBuilder.cs
- JavaScriptSerializer.cs
- SerializationStore.cs
- Int32Animation.cs
- LinqDataSourceHelper.cs
- RadialGradientBrush.cs
- SettingsContext.cs
- PartitionedStreamMerger.cs
- ConnectionsZone.cs
- MsdtcWrapper.cs