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
- ItemContainerGenerator.cs
- ComponentResourceManager.cs
- ACL.cs
- GridLengthConverter.cs
- ArgumentException.cs
- DelegateCompletionCallbackWrapper.cs
- XmlSchemaAnnotation.cs
- ConnectionPointCookie.cs
- TextEmbeddedObject.cs
- OutOfProcStateClientManager.cs
- DispatcherFrame.cs
- HtmlAnchor.cs
- CryptoConfig.cs
- WindowsContainer.cs
- Trace.cs
- SchemaCollectionCompiler.cs
- Blend.cs
- PixelFormats.cs
- DocumentSequence.cs
- MemberAccessException.cs
- XmlKeywords.cs
- DataColumnMapping.cs
- ControlPropertyNameConverter.cs
- ColumnWidthChangingEvent.cs
- CacheAxisQuery.cs
- FrameworkObject.cs
- ViewStateException.cs
- CategoryNameCollection.cs
- DataSourceCacheDurationConverter.cs
- ContentElement.cs
- FilterUserControlBase.cs
- FontEmbeddingManager.cs
- XmlSchemaSimpleTypeRestriction.cs
- RC2CryptoServiceProvider.cs
- RecordsAffectedEventArgs.cs
- EntityViewContainer.cs
- ManualResetEvent.cs
- HttpRuntimeSection.cs
- Slider.cs
- sqlmetadatafactory.cs
- Selection.cs
- ArithmeticException.cs
- DeleteMemberBinder.cs
- XamlWriter.cs
- SqlUserDefinedAggregateAttribute.cs
- RadioButton.cs
- StateMachineWorkflowDesigner.cs
- DiscoveryClientDuplexChannel.cs
- DataGridItemAttachedStorage.cs
- FontDialog.cs
- BuildProvider.cs
- SymbolTable.cs
- DictionaryEntry.cs
- HttpSessionStateBase.cs
- BindingContext.cs
- CalendarDesigner.cs
- StubHelpers.cs
- ClientSession.cs
- SpecularMaterial.cs
- ValidationSummary.cs
- SortKey.cs
- WsatServiceAddress.cs
- EditBehavior.cs
- FixedSOMContainer.cs
- AuthenticationModulesSection.cs
- XmlSchemaObjectTable.cs
- LinearGradientBrush.cs
- CompiledQueryCacheEntry.cs
- AdornerDecorator.cs
- MemberHolder.cs
- ProfileModule.cs
- ProviderSettingsCollection.cs
- RuleSettingsCollection.cs
- ComponentSerializationService.cs
- TimelineGroup.cs
- Literal.cs
- Overlapped.cs
- ITreeGenerator.cs
- XmlSigningNodeWriter.cs
- ColorPalette.cs
- UInt64Storage.cs
- IsolatedStorageSecurityState.cs
- ObjectViewFactory.cs
- HashHelper.cs
- ListViewGroup.cs
- XmlWriter.cs
- PartialTrustHelpers.cs
- Int64KeyFrameCollection.cs
- WorkBatch.cs
- TimeoutException.cs
- SuppressMergeCheckAttribute.cs
- MbpInfo.cs
- AdRotator.cs
- SiteMapDataSource.cs
- ImportedPolicyConversionContext.cs
- ElementMarkupObject.cs
- x509utils.cs
- DataServiceHost.cs
- MultipartIdentifier.cs
- shaperfactoryquerycachekey.cs