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
- XmlSchemaSet.cs
- PrefixQName.cs
- WebPartEditVerb.cs
- Semaphore.cs
- Directory.cs
- GetMemberBinder.cs
- VirtualPath.cs
- BooleanSwitch.cs
- FunctionImportElement.cs
- Durable.cs
- ProcessHostMapPath.cs
- EntitySqlQueryBuilder.cs
- HyperLinkStyle.cs
- ActivityCodeDomReferenceService.cs
- ApplicationManager.cs
- ConstructorNeedsTagAttribute.cs
- AutomationEventArgs.cs
- DataRow.cs
- SoapProcessingBehavior.cs
- DnsPermission.cs
- CompositeDataBoundControl.cs
- MimeObjectFactory.cs
- LinqExpressionNormalizer.cs
- IDispatchConstantAttribute.cs
- CustomAttributeSerializer.cs
- TrackingParticipant.cs
- UriTemplateTrieLocation.cs
- XmlWriterSettings.cs
- ObjectHelper.cs
- MessageQueuePermissionEntry.cs
- XmlAggregates.cs
- XmlSchemaSimpleType.cs
- Page.cs
- PointConverter.cs
- PageHandlerFactory.cs
- WinEventHandler.cs
- DataGridViewCellLinkedList.cs
- WebPartHeaderCloseVerb.cs
- ModuleElement.cs
- ServiceModelActivationSectionGroup.cs
- WebPartChrome.cs
- LinqDataSourceHelper.cs
- WebEvents.cs
- DocumentSequence.cs
- DataTableClearEvent.cs
- ToolStripItemEventArgs.cs
- SettingsPropertyValue.cs
- FormViewModeEventArgs.cs
- FocusManager.cs
- CacheMemory.cs
- XmlNodeChangedEventManager.cs
- ValidatingReaderNodeData.cs
- WorkflowTransactionService.cs
- ClusterSafeNativeMethods.cs
- COSERVERINFO.cs
- PackageDigitalSignatureManager.cs
- XmlBinaryReader.cs
- PropertyGrid.cs
- Operator.cs
- DecoratedNameAttribute.cs
- ConfigurationManagerHelperFactory.cs
- DataGridColumnReorderingEventArgs.cs
- EventLogPermissionEntryCollection.cs
- TableCellCollection.cs
- CompositeFontInfo.cs
- MediaElement.cs
- XsltConvert.cs
- ProxyHelper.cs
- GroupBox.cs
- TypeToken.cs
- FamilyMapCollection.cs
- SoapReflector.cs
- ACL.cs
- ContextTokenTypeConverter.cs
- DataMemberListEditor.cs
- DataObjectPastingEventArgs.cs
- HttpPostProtocolImporter.cs
- DelegateArgumentReference.cs
- QilIterator.cs
- ExceptionUtil.cs
- CqlQuery.cs
- FocusTracker.cs
- SqlCachedBuffer.cs
- NavigationHelper.cs
- StorageMappingFragment.cs
- QuadraticBezierSegment.cs
- LongMinMaxAggregationOperator.cs
- AtlasWeb.Designer.cs
- ParallelForEach.cs
- FrameSecurityDescriptor.cs
- TypeContext.cs
- FixedSOMPageElement.cs
- CaseInsensitiveHashCodeProvider.cs
- HierarchicalDataBoundControlAdapter.cs
- TaiwanCalendar.cs
- WindowsHyperlink.cs
- DynamicUpdateCommand.cs
- ProxyManager.cs
- SqlCommand.cs
- ToolboxCategoryItems.cs