Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlWrappingWriter.cs
- GridViewColumn.cs
- DesignObjectWrapper.cs
- ImageConverter.cs
- ConfigurationSchemaErrors.cs
- ExceptionNotification.cs
- _NegoState.cs
- DateTimeConverter.cs
- AutomationPeer.cs
- ConnectionManager.cs
- UnionExpr.cs
- SafeThreadHandle.cs
- LinqDataSourceView.cs
- TextTabProperties.cs
- UnauthorizedWebPart.cs
- IApplicationTrustManager.cs
- WebPartsSection.cs
- QueryConverter.cs
- NativeMethods.cs
- DrawItemEvent.cs
- BStrWrapper.cs
- RoutingChannelExtension.cs
- OutputScopeManager.cs
- GridViewCommandEventArgs.cs
- Stackframe.cs
- dtdvalidator.cs
- SqlWebEventProvider.cs
- ApplicationBuildProvider.cs
- DesignerCategoryAttribute.cs
- NullReferenceException.cs
- propertyentry.cs
- StateMachine.cs
- EntityKeyElement.cs
- SecureEnvironment.cs
- FormsAuthenticationEventArgs.cs
- TextDecorationUnitValidation.cs
- ClientRuntimeConfig.cs
- AnnotationService.cs
- TemplatedMailWebEventProvider.cs
- StreamedFramingRequestChannel.cs
- BuildProvidersCompiler.cs
- HtmlControl.cs
- LicenseException.cs
- Nodes.cs
- Transform3DGroup.cs
- XmlSchemaElement.cs
- DatatypeImplementation.cs
- IntegerValidator.cs
- Menu.cs
- Style.cs
- DBDataPermissionAttribute.cs
- NativeMethodsCLR.cs
- StyleXamlParser.cs
- UnSafeCharBuffer.cs
- ContextActivityUtils.cs
- _KerberosClient.cs
- MouseActionValueSerializer.cs
- DataGridViewCellFormattingEventArgs.cs
- AbstractDataSvcMapFileLoader.cs
- PropertyGeneratedEventArgs.cs
- safesecurityhelperavalon.cs
- ContextMenu.cs
- DoubleLinkList.cs
- GridViewRow.cs
- StreamSecurityUpgradeInitiator.cs
- TreeNodeStyle.cs
- PropertyTabChangedEvent.cs
- IISMapPath.cs
- SessionStateModule.cs
- CodeDomSerializer.cs
- Vector3DKeyFrameCollection.cs
- SharedDp.cs
- Variable.cs
- Color.cs
- FileDetails.cs
- OneWayChannelListener.cs
- MasterPageBuildProvider.cs
- WebBrowserProgressChangedEventHandler.cs
- DeleteMemberBinder.cs
- CacheMemory.cs
- VirtualizedItemProviderWrapper.cs
- SplitterDesigner.cs
- DispatcherHooks.cs
- Point.cs
- TreeNodeStyle.cs
- BoundColumn.cs
- DataGridViewDataConnection.cs
- SortKey.cs
- InheritanceService.cs
- WebConfigurationHost.cs
- DateTimeConstantAttribute.cs
- DataPagerCommandEventArgs.cs
- FlowLayout.cs
- NameTable.cs
- UnsafeCollabNativeMethods.cs
- TransportManager.cs
- PageAdapter.cs
- ToolStripButton.cs
- SimplePropertyEntry.cs
- EraserBehavior.cs