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
- BulletedListDesigner.cs
- ColumnReorderedEventArgs.cs
- FilterUserControlBase.cs
- ArraySortHelper.cs
- Fonts.cs
- CapabilitiesAssignment.cs
- _OverlappedAsyncResult.cs
- InfoCard.cs
- ImageIndexConverter.cs
- DateTimeStorage.cs
- DataConnectionHelper.cs
- EdmProviderManifest.cs
- WindowAutomationPeer.cs
- ToolStripComboBox.cs
- LoginName.cs
- QilLiteral.cs
- OracleConnectionFactory.cs
- DataGridCell.cs
- MutexSecurity.cs
- RSAOAEPKeyExchangeDeformatter.cs
- EventProperty.cs
- Clipboard.cs
- ProviderCommandInfoUtils.cs
- FileSystemEventArgs.cs
- AnnotationDocumentPaginator.cs
- HttpRawResponse.cs
- CodeDOMProvider.cs
- EntityException.cs
- SessionEndingEventArgs.cs
- EDesignUtil.cs
- PathData.cs
- Logging.cs
- WorkflowDebuggerSteppingAttribute.cs
- XmlSignificantWhitespace.cs
- EditingCoordinator.cs
- ComponentResourceKey.cs
- ServiceModelStringsVersion1.cs
- CacheDependency.cs
- ExpressionEditorAttribute.cs
- PropertiesTab.cs
- PeerPresenceInfo.cs
- MetadataProperty.cs
- StringBuilder.cs
- ISO2022Encoding.cs
- WebPartConnectionsCloseVerb.cs
- NetStream.cs
- ResolveCriteriaCD1.cs
- StringUtil.cs
- HttpServerUtilityBase.cs
- ImageField.cs
- BitmapEffect.cs
- CodeConstructor.cs
- ParseChildrenAsPropertiesAttribute.cs
- GeometryConverter.cs
- WhitespaceRuleLookup.cs
- EventMappingSettings.cs
- LoaderAllocator.cs
- StrokeRenderer.cs
- CodeNamespaceImportCollection.cs
- TraceHandlerErrorFormatter.cs
- AndCondition.cs
- ToolStripMenuItemCodeDomSerializer.cs
- HandleRef.cs
- BaseParaClient.cs
- MarkupCompilePass1.cs
- Decoder.cs
- StorageAssociationSetMapping.cs
- CellTreeNodeVisitors.cs
- ListViewContainer.cs
- MethodExpression.cs
- ListenerElementsCollection.cs
- GroupJoinQueryOperator.cs
- WebFaultClientMessageInspector.cs
- log.cs
- ProfilePropertyMetadata.cs
- StrokeNode.cs
- UnionExpr.cs
- XmlLinkedNode.cs
- Visitors.cs
- DecoderReplacementFallback.cs
- PeekCompletedEventArgs.cs
- DecodeHelper.cs
- Transform3D.cs
- OptimizedTemplateContentHelper.cs
- RawStylusActions.cs
- UnauthorizedWebPart.cs
- FileResponseElement.cs
- LoaderAllocator.cs
- Pen.cs
- ColorTypeConverter.cs
- HtmlShim.cs
- EntitySqlQueryCacheKey.cs
- FrugalMap.cs
- Win32KeyboardDevice.cs
- UTF7Encoding.cs
- ProfileModule.cs
- EditingScope.cs
- ContentAlignmentEditor.cs
- CompModHelpers.cs
- InvalidateEvent.cs