Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- ExceptionNotification.cs
- CroppedBitmap.cs
- TextParentUndoUnit.cs
- AddInIpcChannel.cs
- GradientBrush.cs
- AuthStoreRoleProvider.cs
- AspNetCompatibilityRequirementsAttribute.cs
- RegistryKey.cs
- WaveHeader.cs
- SoundPlayerAction.cs
- PenContext.cs
- SoapCodeExporter.cs
- SQlBooleanStorage.cs
- ArgIterator.cs
- InstancePersistenceContext.cs
- NameTable.cs
- WebPartActionVerb.cs
- TraceUtility.cs
- Point3DCollectionConverter.cs
- DataRowCollection.cs
- UidManager.cs
- LinqDataSource.cs
- CreateUserWizardStep.cs
- ProtocolViolationException.cs
- RayHitTestParameters.cs
- SecurityTokenProvider.cs
- Int16.cs
- _LazyAsyncResult.cs
- SerializationSectionGroup.cs
- ConditionalAttribute.cs
- RsaKeyIdentifierClause.cs
- HtmlTableRow.cs
- ResourceDescriptionAttribute.cs
- ByteArrayHelperWithString.cs
- CatalogUtil.cs
- filewebresponse.cs
- SelectionPatternIdentifiers.cs
- FileSecurity.cs
- AsyncStreamReader.cs
- ColorPalette.cs
- CroppedBitmap.cs
- SharedPersonalizationStateInfo.cs
- Accessors.cs
- StickyNoteHelper.cs
- DockingAttribute.cs
- ReferenceService.cs
- LineServices.cs
- FilteredAttributeCollection.cs
- WebBrowserDocumentCompletedEventHandler.cs
- DBConcurrencyException.cs
- ResourceReader.cs
- HttpContextWrapper.cs
- PropertyTab.cs
- BookmarkResumptionRecord.cs
- FolderLevelBuildProviderCollection.cs
- XPathBuilder.cs
- InternalDispatchObject.cs
- CodeVariableDeclarationStatement.cs
- CodeCatchClause.cs
- XmlWhitespace.cs
- PathFigure.cs
- DataGridViewAddColumnDialog.cs
- WebServiceErrorEvent.cs
- DataTableMappingCollection.cs
- TemplateControlCodeDomTreeGenerator.cs
- XPathChildIterator.cs
- MemberHolder.cs
- SchemaTableOptionalColumn.cs
- SymbolEqualComparer.cs
- AxHost.cs
- XmlLanguage.cs
- HtmlElementEventArgs.cs
- EventDescriptorCollection.cs
- TypedRowGenerator.cs
- Soap12ProtocolImporter.cs
- CollectionDataContract.cs
- XmlSchemas.cs
- StateRuntime.cs
- WebPartDisplayModeEventArgs.cs
- AddInIpcChannel.cs
- KeyNotFoundException.cs
- LookupBindingPropertiesAttribute.cs
- ComplexTypeEmitter.cs
- PropertyCollection.cs
- BorderGapMaskConverter.cs
- MultipleViewProviderWrapper.cs
- serverconfig.cs
- ConfigXmlComment.cs
- DocumentPageView.cs
- TypeSystem.cs
- EntityClientCacheKey.cs
- XmlNodeComparer.cs
- BitmapEffectrendercontext.cs
- UIElement3DAutomationPeer.cs
- IERequestCache.cs
- AssemblyBuilderData.cs
- SoapInteropTypes.cs
- ToolboxItemCollection.cs
- WindowsGraphics.cs
- PageContent.cs