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
- ScaleTransform.cs
- OperatingSystemVersionCheck.cs
- WmfPlaceableFileHeader.cs
- ObjectMemberMapping.cs
- FieldCollectionEditor.cs
- SimpleType.cs
- FileInfo.cs
- PenContext.cs
- exports.cs
- AuthorizationRuleCollection.cs
- ListViewInsertEventArgs.cs
- TextTreeText.cs
- WebPartExportVerb.cs
- SuppressMergeCheckAttribute.cs
- WebBrowserEvent.cs
- InvokeSchedule.cs
- FunctionOverloadResolver.cs
- DesignerActionService.cs
- CodeObject.cs
- SocketCache.cs
- DifferencingCollection.cs
- SQLDateTimeStorage.cs
- ToolBar.cs
- DocumentXPathNavigator.cs
- CodeDirectionExpression.cs
- CodeSubDirectory.cs
- OpenTypeLayoutCache.cs
- ValidationRule.cs
- FileDialogCustomPlacesCollection.cs
- Control.cs
- NamedPermissionSet.cs
- XmlConvert.cs
- TableItemStyle.cs
- DocumentAutomationPeer.cs
- x509store.cs
- TrackingMemoryStream.cs
- MouseButton.cs
- WebPartUserCapability.cs
- SqlDataReader.cs
- ObjectDataSourceDisposingEventArgs.cs
- MenuItemStyle.cs
- VersionPair.cs
- Drawing.cs
- _DomainName.cs
- PropertyGridCommands.cs
- DataGridViewColumn.cs
- SynchronizationFilter.cs
- SqlProfileProvider.cs
- ObjectCloneHelper.cs
- WebPartsPersonalizationAuthorization.cs
- cookieexception.cs
- UserControl.cs
- safelink.cs
- IPCCacheManager.cs
- HTTP_SERVICE_CONFIG_URLACL_PARAM.cs
- IndentTextWriter.cs
- Properties.cs
- EventLogPermissionAttribute.cs
- WinFormsSpinner.cs
- EntityFrameworkVersions.cs
- XmlAnyAttributeAttribute.cs
- WorkflowInstanceAbortedRecord.cs
- XsdCachingReader.cs
- CommandValueSerializer.cs
- NotificationContext.cs
- CanExecuteRoutedEventArgs.cs
- SpeechEvent.cs
- TextParaClient.cs
- DataGridViewRowPrePaintEventArgs.cs
- HttpHandlersSection.cs
- ScriptMethodAttribute.cs
- ColorMatrix.cs
- CTreeGenerator.cs
- GenericIdentity.cs
- StyleXamlParser.cs
- ModifiableIteratorCollection.cs
- TouchEventArgs.cs
- PropertyTabAttribute.cs
- RoutedEventValueSerializer.cs
- PeerNameRecordCollection.cs
- invalidudtexception.cs
- TextLineBreak.cs
- XPathConvert.cs
- NativeRightsManagementAPIsStructures.cs
- MLangCodePageEncoding.cs
- ProfileServiceManager.cs
- ToolZone.cs
- WebConvert.cs
- DataServiceRequest.cs
- SqlDataSourceStatusEventArgs.cs
- NativeMethods.cs
- InternalCache.cs
- SiteIdentityPermission.cs
- HttpPostedFile.cs
- SizeChangedInfo.cs
- VectorCollectionConverter.cs
- PolyBezierSegmentFigureLogic.cs
- HTTPNotFoundHandler.cs
- MSAAEventDispatcher.cs
- GeometryValueSerializer.cs