Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- JsonReader.cs
- XPathScanner.cs
- ItemMap.cs
- AstTree.cs
- BrowserCapabilitiesFactory.cs
- Point3DConverter.cs
- ConcurrentStack.cs
- DetailsViewRow.cs
- FontEmbeddingManager.cs
- BuildProvidersCompiler.cs
- Base64Encoding.cs
- WorkflowMarkupSerializerMapping.cs
- SqlLiftWhereClauses.cs
- AuthStoreRoleProvider.cs
- ErrorProvider.cs
- GradientBrush.cs
- RuleSetDialog.cs
- PropertyChangedEventArgs.cs
- MsmqOutputSessionChannel.cs
- dataobject.cs
- FormatSelectingMessageInspector.cs
- Util.cs
- PointIndependentAnimationStorage.cs
- DbProviderServices.cs
- DataSourceHelper.cs
- LinqDataSourceSelectEventArgs.cs
- MembershipUser.cs
- NextPreviousPagerField.cs
- DataGridItemCollection.cs
- ToolStripItemImageRenderEventArgs.cs
- webproxy.cs
- GridViewHeaderRowPresenter.cs
- DataTemplateSelector.cs
- XmlDesigner.cs
- Activator.cs
- InheritanceRules.cs
- MemberProjectedSlot.cs
- FunctionImportElement.cs
- Int32Storage.cs
- SharedStatics.cs
- ValueOfAction.cs
- BooleanAnimationBase.cs
- RecognizerInfo.cs
- WhiteSpaceTrimStringConverter.cs
- _LocalDataStoreMgr.cs
- TypeDescriptor.cs
- GC.cs
- DispatcherObject.cs
- SmiTypedGetterSetter.cs
- SecurityException.cs
- BaseCodePageEncoding.cs
- InfoCardUIAgent.cs
- SQLInt64Storage.cs
- CookieProtection.cs
- nulltextcontainer.cs
- WindowsToolbarAsMenu.cs
- ChangesetResponse.cs
- _ShellExpression.cs
- ApplicationInterop.cs
- InkCanvasSelection.cs
- XmlTextReaderImplHelpers.cs
- AssociationSetMetadata.cs
- XmlJsonReader.cs
- DoubleAnimationBase.cs
- VisualTreeHelper.cs
- infer.cs
- SchemaNamespaceManager.cs
- SchemaCollectionPreprocessor.cs
- PolyLineSegment.cs
- PersonalizationStateQuery.cs
- MethodCallExpression.cs
- LayoutManager.cs
- RadioButtonList.cs
- HtmlContainerControl.cs
- DynamicActivityXamlReader.cs
- x509utils.cs
- ProcessModelSection.cs
- MetadataCollection.cs
- HandleCollector.cs
- _CookieModule.cs
- DBDataPermission.cs
- EntityWithChangeTrackerStrategy.cs
- ItemsControl.cs
- SqlClientFactory.cs
- MetadataArtifactLoaderFile.cs
- RbTree.cs
- SerializerDescriptor.cs
- ColorIndependentAnimationStorage.cs
- InstanceDataCollection.cs
- FlowDocumentPage.cs
- StructuredProperty.cs
- ResourceAttributes.cs
- messageonlyhwndwrapper.cs
- ServiceObjectContainer.cs
- TdsRecordBufferSetter.cs
- StateMachineWorkflowDesigner.cs
- XmlLanguageConverter.cs
- LogArchiveSnapshot.cs
- NodeLabelEditEvent.cs
- IndexingContentUnit.cs