Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- TimeSpanMinutesOrInfiniteConverter.cs
- CodeDirectoryCompiler.cs
- DispatchWrapper.cs
- DesignerLinkAdapter.cs
- MethodBody.cs
- DefaultPropertyAttribute.cs
- MouseCaptureWithinProperty.cs
- CodeArgumentReferenceExpression.cs
- Pair.cs
- SecurityTokenRequirement.cs
- figurelengthconverter.cs
- AuthenticateEventArgs.cs
- ClientConfigurationSystem.cs
- SamlAttributeStatement.cs
- TextRange.cs
- XPathSelfQuery.cs
- Renderer.cs
- StreamUpgradeProvider.cs
- PropertyGridEditorPart.cs
- TransformProviderWrapper.cs
- GridViewColumnCollection.cs
- StylusEditingBehavior.cs
- HttpRuntime.cs
- DataGridCell.cs
- XmlnsPrefixAttribute.cs
- FrameworkElementAutomationPeer.cs
- SafeFileMappingHandle.cs
- RoleManagerEventArgs.cs
- LabelLiteral.cs
- BindingObserver.cs
- IdleTimeoutMonitor.cs
- SrgsToken.cs
- dsa.cs
- XmlILOptimizerVisitor.cs
- HttpStreamXmlDictionaryWriter.cs
- AttributeCollection.cs
- ListViewGroupItemCollection.cs
- Interfaces.cs
- BitmapEffectDrawingContextWalker.cs
- CodeRegionDirective.cs
- CodeCommentStatementCollection.cs
- AxHostDesigner.cs
- TimeoutValidationAttribute.cs
- XmlSchemaSimpleContent.cs
- FontDifferentiator.cs
- SessionEndedEventArgs.cs
- SvcFileManager.cs
- XmlMembersMapping.cs
- StateMachine.cs
- StateChangeEvent.cs
- EntityContainer.cs
- StringDictionaryEditor.cs
- FontInfo.cs
- QilGenerator.cs
- Positioning.cs
- PenThreadWorker.cs
- Panel.cs
- PasswordRecovery.cs
- OleDbError.cs
- PolicyException.cs
- DefaultAuthorizationContext.cs
- SQLMembershipProvider.cs
- EntityCommandExecutionException.cs
- SystemWebSectionGroup.cs
- Canvas.cs
- TabletDevice.cs
- DefaultWorkflowTransactionService.cs
- MetadataArtifactLoaderResource.cs
- SecurityTokenSerializer.cs
- StylusPlugin.cs
- RectangleHotSpot.cs
- HttpVersion.cs
- ValueChangedEventManager.cs
- XPathScanner.cs
- ObjectParameter.cs
- LinkedList.cs
- SecurityDescriptor.cs
- PathNode.cs
- SkipStoryboardToFill.cs
- EventDescriptor.cs
- FormsAuthenticationUser.cs
- ButtonStandardAdapter.cs
- Application.cs
- DrawingGroupDrawingContext.cs
- SortedDictionary.cs
- UserNameServiceElement.cs
- SerializationIncompleteException.cs
- FormsAuthenticationTicket.cs
- Utils.cs
- BooleanKeyFrameCollection.cs
- FormViewCommandEventArgs.cs
- EdmPropertyAttribute.cs
- ScriptControlDescriptor.cs
- DashStyles.cs
- ImageCodecInfoPrivate.cs
- ParseChildrenAsPropertiesAttribute.cs
- MonthChangedEventArgs.cs
- XmlHelper.cs
- DataGridLinkButton.cs
- BezierSegment.cs