Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Controls / Primitives / LayoutInformation.cs / 1305600 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DefaultBinder.cs
- FileLogRecordStream.cs
- StructuredTypeEmitter.cs
- X509SecurityTokenAuthenticator.cs
- RectAnimationBase.cs
- SecurityTokenException.cs
- TransactionTraceIdentifier.cs
- CodeMethodInvokeExpression.cs
- BinaryConverter.cs
- NotFiniteNumberException.cs
- PolyBezierSegmentFigureLogic.cs
- BamlStream.cs
- TreeNodeBinding.cs
- BufferModesCollection.cs
- QueryRelOp.cs
- VectorCollection.cs
- WebEvents.cs
- CommentAction.cs
- OptionalColumn.cs
- RepeaterItemCollection.cs
- ServiceNotStartedException.cs
- TemplateBuilder.cs
- MetadataUtilsSmi.cs
- ReadOnlyMetadataCollection.cs
- PropertyMetadata.cs
- ListBoxAutomationPeer.cs
- X509WindowsSecurityToken.cs
- DataControlFieldCell.cs
- AutomationPatternInfo.cs
- FileLoadException.cs
- List.cs
- ColorPalette.cs
- SmtpReplyReader.cs
- XmlSchemaSimpleTypeRestriction.cs
- PeerNameRecordCollection.cs
- TitleStyle.cs
- ColorConverter.cs
- QuotedPrintableStream.cs
- ProxyGenerator.cs
- LocalizedNameDescriptionPair.cs
- LayoutEngine.cs
- DataExchangeServiceBinder.cs
- StylusPointPropertyId.cs
- SimpleWorkerRequest.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- EffectiveValueEntry.cs
- XhtmlConformanceSection.cs
- DocumentViewerAutomationPeer.cs
- IPipelineRuntime.cs
- InputBindingCollection.cs
- HMACSHA384.cs
- TemplateBamlTreeBuilder.cs
- WebErrorHandler.cs
- CodeDirectoryCompiler.cs
- AnimationStorage.cs
- RelatedPropertyManager.cs
- PeerNearMe.cs
- adornercollection.cs
- SplineQuaternionKeyFrame.cs
- LowerCaseStringConverter.cs
- PartialCachingAttribute.cs
- BookmarkEventArgs.cs
- ActivityTypeCodeDomSerializer.cs
- NoClickablePointException.cs
- GridViewColumnCollectionChangedEventArgs.cs
- TextHidden.cs
- TypeDescriptionProviderAttribute.cs
- BitmapDownload.cs
- ListViewGroupConverter.cs
- NativeMethodsCLR.cs
- NegotiateStream.cs
- ThreadStaticAttribute.cs
- MemberRestriction.cs
- EndOfStreamException.cs
- TransactionValidationBehavior.cs
- ScaleTransform.cs
- Matrix.cs
- AgileSafeNativeMemoryHandle.cs
- GlobalizationAssembly.cs
- TableHeaderCell.cs
- CursorConverter.cs
- TextTreeUndoUnit.cs
- XPathDocumentNavigator.cs
- Aes.cs
- Thread.cs
- OdbcHandle.cs
- XmlnsCache.cs
- XmlSchemaAttributeGroupRef.cs
- RedBlackList.cs
- TypeElementCollection.cs
- NativeWindow.cs
- DataObjectPastingEventArgs.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- ControlIdConverter.cs
- DependencyObjectType.cs
- UserCancellationException.cs
- RepeaterItemCollection.cs
- SqlBulkCopyColumnMappingCollection.cs
- FrameworkReadOnlyPropertyMetadata.cs
- DataExchangeServiceBinder.cs