Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- XmlSerializationReader.cs
- ByteFacetDescriptionElement.cs
- HtmlShimManager.cs
- CompoundFileIOPermission.cs
- UserNameSecurityToken.cs
- DataSvcMapFile.cs
- ConfigXmlWhitespace.cs
- Object.cs
- DataGridViewComboBoxEditingControl.cs
- FileChangesMonitor.cs
- SyndicationSerializer.cs
- X509Certificate2.cs
- WeakReadOnlyCollection.cs
- DBCommandBuilder.cs
- WebPartUserCapability.cs
- ExpressionConverter.cs
- LingerOption.cs
- ListBox.cs
- ApplicationServicesHostFactory.cs
- SendMailErrorEventArgs.cs
- WebPartExportVerb.cs
- WbemException.cs
- WithParamAction.cs
- SaveFileDialog.cs
- XmlSchemaDocumentation.cs
- FieldBuilder.cs
- PngBitmapDecoder.cs
- ArrayTypeMismatchException.cs
- Typography.cs
- TemplateContent.cs
- SQLDoubleStorage.cs
- ICspAsymmetricAlgorithm.cs
- SerializationAttributes.cs
- CodeAttributeArgumentCollection.cs
- TextMetrics.cs
- ViewStateChangedEventArgs.cs
- SpellCheck.cs
- ResizeBehavior.cs
- CommandBinding.cs
- XpsResource.cs
- AnimationClockResource.cs
- ToolboxItem.cs
- PropertyChangingEventArgs.cs
- AttributeCollection.cs
- Focus.cs
- MsmqIntegrationSecurity.cs
- IDQuery.cs
- XmlNamespaceMapping.cs
- CacheDependency.cs
- ContextDataSourceContextData.cs
- IconConverter.cs
- MemoryRecordBuffer.cs
- MethodRental.cs
- DataRowView.cs
- MethodBuilderInstantiation.cs
- Button.cs
- XhtmlBasicValidatorAdapter.cs
- ProxyWebPartManager.cs
- KeyEventArgs.cs
- AddInToken.cs
- WebPartConnectionsDisconnectVerb.cs
- streamingZipPartStream.cs
- XmlQueryTypeFactory.cs
- TemplateKeyConverter.cs
- MimeMapping.cs
- RubberbandSelector.cs
- InertiaTranslationBehavior.cs
- BaseTreeIterator.cs
- WorkflowRuntimeServiceElementCollection.cs
- COM2IProvidePropertyBuilderHandler.cs
- PackageFilter.cs
- ApplicationTrust.cs
- RectKeyFrameCollection.cs
- EntityDataSourceWizardForm.cs
- LexicalChunk.cs
- FocusTracker.cs
- XmlILOptimizerVisitor.cs
- DataObjectSettingDataEventArgs.cs
- RawStylusActions.cs
- ControlDesigner.cs
- ImageResources.Designer.cs
- RightsManagementManager.cs
- FlowDocument.cs
- SqlClientFactory.cs
- CodeObjectCreateExpression.cs
- StorageMappingItemCollection.cs
- ObjectResult.cs
- XmlBinaryReader.cs
- HttpModuleAction.cs
- DictationGrammar.cs
- AutomationElement.cs
- CheckedListBox.cs
- IBuiltInEvidence.cs
- XMLSchema.cs
- Repeater.cs
- FontCacheLogic.cs
- WindowsMenu.cs
- NumberSubstitution.cs
- TraceSwitch.cs
- KeysConverter.cs