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
- SystemIPGlobalProperties.cs
- RadioButtonPopupAdapter.cs
- BufferBuilder.cs
- ObjectSpanRewriter.cs
- OleDbDataAdapter.cs
- JsonDataContract.cs
- ReferencedAssembly.cs
- CategoryGridEntry.cs
- X509AsymmetricSecurityKey.cs
- UserPreferenceChangedEventArgs.cs
- TableRowCollection.cs
- AppSettingsReader.cs
- NullableIntMinMaxAggregationOperator.cs
- XmlException.cs
- Item.cs
- TreeNodeClickEventArgs.cs
- WebEvents.cs
- TypedReference.cs
- XmlSchemaCompilationSettings.cs
- ResourceBinder.cs
- ExponentialEase.cs
- ScriptManagerProxy.cs
- OptimalTextSource.cs
- MouseButton.cs
- DataMember.cs
- WmlLinkAdapter.cs
- UpdateTracker.cs
- Compiler.cs
- OwnerDrawPropertyBag.cs
- RemoteWebConfigurationHost.cs
- Line.cs
- Panel.cs
- DataGridCellInfo.cs
- entityreference_tresulttype.cs
- MarshalByValueComponent.cs
- RSATokenProvider.cs
- XmlDownloadManager.cs
- SafeWaitHandle.cs
- AppDomain.cs
- SparseMemoryStream.cs
- ContextMenuStripActionList.cs
- HtmlTableCellCollection.cs
- GeneralTransformGroup.cs
- SecurityContext.cs
- StreamUpdate.cs
- _NativeSSPI.cs
- ResumeStoryboard.cs
- WebSysDisplayNameAttribute.cs
- DBAsyncResult.cs
- XmlSerializerNamespaces.cs
- XamlDesignerSerializationManager.cs
- Visual3DCollection.cs
- FormatConvertedBitmap.cs
- GradientStop.cs
- PolicyStatement.cs
- ImageAnimator.cs
- Base64Decoder.cs
- ConfigurationSection.cs
- TTSEvent.cs
- AuthenticationModuleElementCollection.cs
- FrameAutomationPeer.cs
- ConnectionStringSettingsCollection.cs
- JsonStringDataContract.cs
- GeneralTransform2DTo3D.cs
- HintTextConverter.cs
- ProcessHostServerConfig.cs
- DbConnectionPoolGroupProviderInfo.cs
- CfgSemanticTag.cs
- CompatibleIComparer.cs
- WindowsListBox.cs
- DataGridCellEditEndingEventArgs.cs
- SqlErrorCollection.cs
- FileDataSourceCache.cs
- CleanUpVirtualizedItemEventArgs.cs
- PermissionToken.cs
- XmlQueryOutput.cs
- BrowserCapabilitiesCompiler.cs
- BindingNavigator.cs
- CodeTypeReferenceCollection.cs
- OdbcStatementHandle.cs
- _OverlappedAsyncResult.cs
- FileSystemInfo.cs
- CustomActivityDesigner.cs
- Rijndael.cs
- ReverseInheritProperty.cs
- SqlDataSourceView.cs
- Variant.cs
- ChannelManagerBase.cs
- VirtualPathProvider.cs
- BufferAllocator.cs
- ValueUtilsSmi.cs
- KeyGestureConverter.cs
- BamlRecordReader.cs
- CommandPlan.cs
- DataViewListener.cs
- TraceHelpers.cs
- HtmlGenericControl.cs
- HttpGetClientProtocol.cs
- SizeAnimation.cs
- ResolveMatchesApril2005.cs