Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- DoubleConverter.cs
- AutoGeneratedField.cs
- PersonalizationProviderCollection.cs
- GlyphManager.cs
- DataKeyArray.cs
- WpfPayload.cs
- StateManagedCollection.cs
- XsltLoader.cs
- LayoutTable.cs
- XmlSchemaType.cs
- WebPart.cs
- BindingExpressionUncommonField.cs
- DataListItemEventArgs.cs
- ExtendedPropertyCollection.cs
- ImmutableCollection.cs
- ResourceReferenceExpression.cs
- UmAlQuraCalendar.cs
- WindowsComboBox.cs
- InputMethodStateChangeEventArgs.cs
- MarkupExtensionParser.cs
- QuaternionValueSerializer.cs
- ReadOnlyPropertyMetadata.cs
- WebBrowserPermission.cs
- ZoneLinkButton.cs
- JsonMessageEncoderFactory.cs
- httpstaticobjectscollection.cs
- ServiceHostFactory.cs
- InvalidTimeZoneException.cs
- SoapSchemaMember.cs
- SignatureTargetIdManager.cs
- PaintEvent.cs
- DateTimeFormatInfo.cs
- SmtpSection.cs
- ModelTreeManager.cs
- UIHelper.cs
- AttributeQuery.cs
- ParameterRefs.cs
- XPathNodeHelper.cs
- RelatedCurrencyManager.cs
- ProfileProvider.cs
- CompiledIdentityConstraint.cs
- SingleAnimationUsingKeyFrames.cs
- DateBoldEvent.cs
- ZipIOCentralDirectoryBlock.cs
- RegularExpressionValidator.cs
- RouteUrlExpressionBuilder.cs
- XmlSchemaExporter.cs
- Range.cs
- BaseTemplateBuildProvider.cs
- CaseCqlBlock.cs
- FontStretchConverter.cs
- DebugView.cs
- XamlPoint3DCollectionSerializer.cs
- DashStyle.cs
- DataGridViewCellFormattingEventArgs.cs
- WorkflowItemPresenter.cs
- ConsumerConnectionPoint.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- Connector.cs
- ClientCredentials.cs
- EmptyEnumerable.cs
- EntityWithKeyStrategy.cs
- printdlgexmarshaler.cs
- LocalFileSettingsProvider.cs
- CalendarModeChangedEventArgs.cs
- CellParagraph.cs
- HoistedLocals.cs
- Select.cs
- DuplicateContext.cs
- ServiceModelPerformanceCounters.cs
- WebDisplayNameAttribute.cs
- DataControlField.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- AuthenticationModuleElement.cs
- Directory.cs
- SmiContextFactory.cs
- TextParagraphProperties.cs
- SiteMapProvider.cs
- GatewayIPAddressInformationCollection.cs
- XmlSchemaIdentityConstraint.cs
- sqlcontext.cs
- RegexGroupCollection.cs
- UrlMappingsSection.cs
- DirectoryNotFoundException.cs
- TextContainerChangeEventArgs.cs
- DictionaryContent.cs
- OdbcEnvironment.cs
- ClientSettings.cs
- PipeStream.cs
- XPathNodeList.cs
- StyleSheetDesigner.cs
- Graphics.cs
- SetStoryboardSpeedRatio.cs
- WmlTextViewAdapter.cs
- MaskedTextProvider.cs
- InputLanguageManager.cs
- WinInet.cs
- SQLGuid.cs
- TextPattern.cs
- ProviderUtil.cs