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
- ObjectDataSourceDesigner.cs
- DelegatedStream.cs
- EditCommandColumn.cs
- ElementFactory.cs
- FrameworkElementFactoryMarkupObject.cs
- RemoteWebConfigurationHostServer.cs
- SubqueryRules.cs
- XPathDocumentNavigator.cs
- SeekableReadStream.cs
- SkipStoryboardToFill.cs
- querybuilder.cs
- PDBReader.cs
- ADMembershipUser.cs
- indexingfiltermarshaler.cs
- CompiledELinqQueryState.cs
- ChooseAction.cs
- Condition.cs
- IODescriptionAttribute.cs
- DataSet.cs
- ProfilePropertySettingsCollection.cs
- DataProtection.cs
- prefixendpointaddressmessagefiltertable.cs
- GenerateTemporaryTargetAssembly.cs
- ObfuscateAssemblyAttribute.cs
- HtmlListAdapter.cs
- EntitySqlQueryBuilder.cs
- BamlMapTable.cs
- Ray3DHitTestResult.cs
- CipherData.cs
- SpeakCompletedEventArgs.cs
- EventToken.cs
- BamlRecordWriter.cs
- DbUpdateCommandTree.cs
- ImageFormat.cs
- TextDecorationUnitValidation.cs
- WebPartCancelEventArgs.cs
- PresentationAppDomainManager.cs
- ProcessProtocolHandler.cs
- ClientType.cs
- XslCompiledTransform.cs
- isolationinterop.cs
- MultiPropertyDescriptorGridEntry.cs
- Delegate.cs
- ContainerSelectorActiveEvent.cs
- ImportCatalogPart.cs
- CompensationToken.cs
- RSACryptoServiceProvider.cs
- ScrollProperties.cs
- XmlSchemaParticle.cs
- DataContract.cs
- brushes.cs
- BinaryOperationBinder.cs
- Guid.cs
- MemberHolder.cs
- ComponentResourceKeyConverter.cs
- TrackingServices.cs
- RowBinding.cs
- SqlServer2KCompatibilityCheck.cs
- StreamGeometry.cs
- EventMappingSettings.cs
- TabControlEvent.cs
- Publisher.cs
- NotifyIcon.cs
- WebPartConnectionsCloseVerb.cs
- querybuilder.cs
- NativeObjectSecurity.cs
- DBSqlParserTable.cs
- XmlExceptionHelper.cs
- _OverlappedAsyncResult.cs
- MethodBuilderInstantiation.cs
- StatusBar.cs
- PrinterResolution.cs
- DataServiceException.cs
- WebBrowser.cs
- AttributeAction.cs
- TypeRestriction.cs
- QueryExpr.cs
- SqlSupersetValidator.cs
- SchemaDeclBase.cs
- InkSerializer.cs
- XmlSchemaException.cs
- DynamicVirtualDiscoSearcher.cs
- FormatterServices.cs
- BinaryReader.cs
- SafeNativeMethods.cs
- BuildProvider.cs
- ParseNumbers.cs
- Vector.cs
- HtmlTextArea.cs
- PropertyFilterAttribute.cs
- HostedElements.cs
- PerformanceCounterPermissionEntry.cs
- InvalidAsynchronousStateException.cs
- PageBreakRecord.cs
- smtppermission.cs
- GeometryValueSerializer.cs
- RoutedEvent.cs
- IsolatedStorageException.cs
- XmlSignificantWhitespace.cs
- RangeValuePatternIdentifiers.cs