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
- WithParamAction.cs
- FlowDocumentPage.cs
- WebPartTracker.cs
- XmlWrappingReader.cs
- TabPage.cs
- ExpressionValueEditor.cs
- AddDataControlFieldDialog.cs
- ExtentKey.cs
- IntegrationExceptionEventArgs.cs
- ControlParameter.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- StatusBarAutomationPeer.cs
- ZipIOCentralDirectoryBlock.cs
- AuthenticationService.cs
- ActiveXContainer.cs
- DataPagerFieldItem.cs
- ParameterModifier.cs
- PingOptions.cs
- CodeParameterDeclarationExpressionCollection.cs
- RequestSecurityTokenForRemoteTokenFactory.cs
- PropertyChange.cs
- parserscommon.cs
- SymbolType.cs
- MonikerUtility.cs
- InvalidComObjectException.cs
- AuthenticationModulesSection.cs
- TimelineClockCollection.cs
- DataRowView.cs
- PartitionedStream.cs
- HtmlValidationSummaryAdapter.cs
- TableStyle.cs
- Event.cs
- DesignerActionService.cs
- SynchronizationLockException.cs
- TimelineGroup.cs
- MeasurementDCInfo.cs
- precedingquery.cs
- PageClientProxyGenerator.cs
- HttpCookieCollection.cs
- DigitalSignature.cs
- PointCollection.cs
- PassportAuthenticationModule.cs
- StickyNoteHelper.cs
- BCLDebug.cs
- SqlCrossApplyToCrossJoin.cs
- SiteMapHierarchicalDataSourceView.cs
- AnnotationAdorner.cs
- QilInvoke.cs
- ServiceHttpModule.cs
- WebSysDisplayNameAttribute.cs
- ListViewContainer.cs
- ButtonAutomationPeer.cs
- XPathNode.cs
- SafeNativeMethods.cs
- CodeMethodInvokeExpression.cs
- DiscreteKeyFrames.cs
- TextPointerBase.cs
- DataSourceExpression.cs
- ResourceContainerWrapper.cs
- DataServices.cs
- HttpRawResponse.cs
- CapabilitiesUse.cs
- DocumentViewerBase.cs
- WeakReference.cs
- PowerModeChangedEventArgs.cs
- MenuBase.cs
- DataControlReference.cs
- NamedObject.cs
- _FixedSizeReader.cs
- SiteOfOriginContainer.cs
- DebugTrace.cs
- TextEditorDragDrop.cs
- StorageEntityContainerMapping.cs
- DbDataRecord.cs
- RuleSettingsCollection.cs
- BasePropertyDescriptor.cs
- HtmlInputFile.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- SrgsElementList.cs
- ExtensionDataObject.cs
- ObjectStateEntryDbDataRecord.cs
- XmlSchemaParticle.cs
- XmlLinkedNode.cs
- LinkAreaEditor.cs
- PolicyManager.cs
- TextEndOfLine.cs
- ProcessStartInfo.cs
- XamlInt32CollectionSerializer.cs
- PointCollection.cs
- FileSystemEventArgs.cs
- ExtensionWindowResizeGrip.cs
- SmtpReplyReader.cs
- QueryResult.cs
- EnumerableWrapperWeakToStrong.cs
- ETagAttribute.cs
- SecureUICommand.cs
- BaseDataBoundControl.cs
- Tuple.cs
- BitmapSourceSafeMILHandle.cs
- MasterPageBuildProvider.cs