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
- ForEachAction.cs
- FontSource.cs
- ValidationSummary.cs
- VideoDrawing.cs
- NumericExpr.cs
- Matrix3D.cs
- PointValueSerializer.cs
- StreamReader.cs
- ResetableIterator.cs
- Wizard.cs
- AsymmetricKeyExchangeDeformatter.cs
- EncryptedReference.cs
- SolidBrush.cs
- _TLSstream.cs
- InstanceLockLostException.cs
- CalendarAutomationPeer.cs
- AttributeUsageAttribute.cs
- PolicyValidationException.cs
- SelectionPatternIdentifiers.cs
- WindowsListViewItemStartMenu.cs
- CodeIterationStatement.cs
- CompositeActivityMarkupSerializer.cs
- AssociatedControlConverter.cs
- CodeCatchClauseCollection.cs
- ChannelServices.cs
- ListViewDataItem.cs
- ClaimSet.cs
- AxHostDesigner.cs
- OleDbWrapper.cs
- ExternalCalls.cs
- DisplayNameAttribute.cs
- FieldBuilder.cs
- SchemaAttDef.cs
- ClientSettingsProvider.cs
- FlowLayout.cs
- Trustee.cs
- InternalPermissions.cs
- ConfigXmlAttribute.cs
- DocumentViewer.cs
- TcpChannelFactory.cs
- SerialReceived.cs
- BackgroundFormatInfo.cs
- WindowsPrincipal.cs
- PeerNearMe.cs
- OracleConnection.cs
- CqlWriter.cs
- CommentEmitter.cs
- DecimalKeyFrameCollection.cs
- SafeNativeMethodsOther.cs
- XmlSchemaSimpleTypeUnion.cs
- SequenceFullException.cs
- EasingQuaternionKeyFrame.cs
- ButtonChrome.cs
- FastEncoder.cs
- OperatingSystem.cs
- SqlBulkCopyColumnMappingCollection.cs
- TableCell.cs
- PathFigure.cs
- HttpWebRequestElement.cs
- MobilePage.cs
- ValidateNames.cs
- GifBitmapDecoder.cs
- MemberDescriptor.cs
- NumberSubstitution.cs
- DataBindingCollection.cs
- FormClosedEvent.cs
- SoapFault.cs
- WebPartUtil.cs
- ChangePassword.cs
- FixedSOMTable.cs
- UserControlCodeDomTreeGenerator.cs
- PriorityChain.cs
- TableCellAutomationPeer.cs
- EditBehavior.cs
- ReadOnlyHierarchicalDataSourceView.cs
- XmlNamespaceManager.cs
- handlecollector.cs
- Single.cs
- ProfileGroupSettingsCollection.cs
- SimpleWorkerRequest.cs
- DragAssistanceManager.cs
- AutoGeneratedField.cs
- RuleSettingsCollection.cs
- RegexStringValidatorAttribute.cs
- SocketAddress.cs
- DBCommandBuilder.cs
- AspNetSynchronizationContext.cs
- GroupQuery.cs
- PlatformNotSupportedException.cs
- MediaEntryAttribute.cs
- FixedTextPointer.cs
- PriorityQueue.cs
- Animatable.cs
- EventLogInformation.cs
- CodeTypeOfExpression.cs
- SoapProtocolImporter.cs
- EntryWrittenEventArgs.cs
- XmlExpressionDumper.cs
- WindowsScrollBar.cs
- TypeGeneratedEventArgs.cs