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
- _LoggingObject.cs
- Storyboard.cs
- Point3D.cs
- DataServiceQueryContinuation.cs
- EditingCoordinator.cs
- EntityProviderFactory.cs
- TabItem.cs
- _ProxyChain.cs
- SelectionEditingBehavior.cs
- XamlTypeMapper.cs
- HostProtectionPermission.cs
- DataGridViewLayoutData.cs
- MatrixUtil.cs
- _UncName.cs
- SecureConversationVersion.cs
- TextBox.cs
- BatchParser.cs
- KnowledgeBase.cs
- TemplateColumn.cs
- PanningMessageFilter.cs
- XslCompiledTransform.cs
- ExpressionStringBuilder.cs
- SchemaElementLookUpTableEnumerator.cs
- SqlXmlStorage.cs
- Assert.cs
- BamlLocalizationDictionary.cs
- ComboBoxItem.cs
- ApplicationActivator.cs
- ToolStripPanelRenderEventArgs.cs
- CancelRequestedRecord.cs
- CodeMethodInvokeExpression.cs
- GuidelineSet.cs
- Menu.cs
- _ListenerResponseStream.cs
- Accessible.cs
- WebPartHelpVerb.cs
- ControlBuilder.cs
- AvTrace.cs
- DrawingContext.cs
- GlobalEventManager.cs
- AutomationPropertyInfo.cs
- ProfileGroupSettings.cs
- RayMeshGeometry3DHitTestResult.cs
- Transform3D.cs
- CodeAccessPermission.cs
- SerialReceived.cs
- DataListGeneralPage.cs
- CodeStatementCollection.cs
- SqlDataSourceRefreshSchemaForm.cs
- ActiveXHost.cs
- ScrollProviderWrapper.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- TextTreeText.cs
- ReceiveActivity.cs
- EntityProviderFactory.cs
- TypeGeneratedEventArgs.cs
- FtpRequestCacheValidator.cs
- TypeElement.cs
- LineUtil.cs
- GridItemPatternIdentifiers.cs
- XPathExpr.cs
- StylusPoint.cs
- nulltextnavigator.cs
- ToolStripDropDownItem.cs
- basemetadatamappingvisitor.cs
- Coordinator.cs
- ImplicitInputBrush.cs
- _CookieModule.cs
- NavigationEventArgs.cs
- DataControlImageButton.cs
- ComponentCollection.cs
- Wizard.cs
- UIElementParaClient.cs
- RawTextInputReport.cs
- xmlfixedPageInfo.cs
- CodeRegionDirective.cs
- EllipticalNodeOperations.cs
- PerformanceCounterPermissionEntry.cs
- ScriptReference.cs
- UdpContractFilterBehavior.cs
- SafeUserTokenHandle.cs
- SelectedGridItemChangedEvent.cs
- MemberAccessException.cs
- PageContentCollection.cs
- HttpApplication.cs
- AnnouncementInnerClientCD1.cs
- ApplyImportsAction.cs
- cache.cs
- BinaryParser.cs
- WebPartZoneBaseDesigner.cs
- Reference.cs
- FileStream.cs
- IPPacketInformation.cs
- ToolStripContentPanel.cs
- IisNotInstalledException.cs
- Single.cs
- GridViewRowPresenter.cs
- DebugInfo.cs
- BigInt.cs
- VScrollBar.cs