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
- FixedSOMPageElement.cs
- CopyOfAction.cs
- Transform3DCollection.cs
- SubMenuStyleCollectionEditor.cs
- BoundField.cs
- TemplateControl.cs
- Pointer.cs
- GroupItem.cs
- AsymmetricKeyExchangeDeformatter.cs
- CodeTypeReference.cs
- QuaternionConverter.cs
- BindingManagerDataErrorEventArgs.cs
- CompressionTracing.cs
- EventArgs.cs
- SettingsPropertyValue.cs
- OdbcConnectionOpen.cs
- LinkLabel.cs
- CatalogZoneDesigner.cs
- SendKeys.cs
- CorrelationResolver.cs
- UndoManager.cs
- AuthorizationRuleCollection.cs
- ConversionHelper.cs
- XmlTextWriter.cs
- HtmlDocument.cs
- Util.cs
- AnonymousIdentificationSection.cs
- Hex.cs
- BinaryHeap.cs
- StringComparer.cs
- XamlToRtfParser.cs
- BaseCodeDomTreeGenerator.cs
- ProxyFragment.cs
- ConfigurationElementCollection.cs
- CellConstant.cs
- Table.cs
- StatementContext.cs
- MouseGestureValueSerializer.cs
- EncoderFallback.cs
- TransmissionStrategy.cs
- Bold.cs
- BasicBrowserDialog.cs
- OracleConnectionStringBuilder.cs
- DocumentSchemaValidator.cs
- PageParser.cs
- ConfigurationSection.cs
- ReaderWriterLockWrapper.cs
- NativeMethods.cs
- DefaultTypeArgumentAttribute.cs
- XmlSchemaGroup.cs
- DataKey.cs
- HostedHttpTransportManager.cs
- ReversePositionQuery.cs
- XmlWriterSettings.cs
- XmlMembersMapping.cs
- FacetEnabledSchemaElement.cs
- LinearGradientBrush.cs
- GenericTypeParameterBuilder.cs
- ContentPresenter.cs
- XmlJsonWriter.cs
- SecondaryIndex.cs
- GroupItemAutomationPeer.cs
- EdmComplexTypeAttribute.cs
- ConnectionsZone.cs
- MatchSingleFxEngineOpcode.cs
- RelationshipManager.cs
- QueryStringParameter.cs
- XmlMtomWriter.cs
- XmlNamespaceMapping.cs
- SoapSchemaImporter.cs
- SchemaInfo.cs
- TrackBar.cs
- IntPtr.cs
- SmtpFailedRecipientException.cs
- XamlTreeBuilder.cs
- SchemaElementDecl.cs
- RelationshipEndCollection.cs
- ProxySimple.cs
- RecommendedAsConfigurableAttribute.cs
- CompressEmulationStream.cs
- OperationCanceledException.cs
- ConfigurationSettings.cs
- CharAnimationBase.cs
- ScheduleChanges.cs
- RegexWorker.cs
- CookieParameter.cs
- OLEDB_Util.cs
- PerformanceCounter.cs
- WorkflowViewStateService.cs
- NegationPusher.cs
- CellParagraph.cs
- VectorAnimationBase.cs
- AtomParser.cs
- XMLUtil.cs
- Attributes.cs
- CommonDialog.cs
- TraceSwitch.cs
- SmtpCommands.cs
- HttpWriter.cs
- SizeKeyFrameCollection.cs