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
- DesignerAttribute.cs
- AnnotationObservableCollection.cs
- DataBinding.cs
- DataColumnCollection.cs
- ShaperBuffers.cs
- RsaElement.cs
- HostingEnvironmentSection.cs
- HashCodeCombiner.cs
- EntitySetRetriever.cs
- WorkflowItemsPresenter.cs
- PerformanceCounterLib.cs
- XslException.cs
- TypeLoader.cs
- WeakReadOnlyCollection.cs
- SmtpReplyReader.cs
- BufferedGraphicsContext.cs
- StringToken.cs
- MetaDataInfo.cs
- BasicBrowserDialog.designer.cs
- SettingsBase.cs
- ObjectTag.cs
- MemoryStream.cs
- ControlSerializer.cs
- CacheMemory.cs
- TextLineResult.cs
- CompiledRegexRunnerFactory.cs
- DesignSurfaceManager.cs
- SqlConnectionFactory.cs
- CalendarSelectionChangedEventArgs.cs
- ToolStripEditorManager.cs
- SqlAliasesReferenced.cs
- WorkflowShape.cs
- PageRequestManager.cs
- XPathDocument.cs
- ColumnMapCopier.cs
- SqlCaseSimplifier.cs
- SqlDataSourceSummaryPanel.cs
- DataObjectMethodAttribute.cs
- TextBox.cs
- CommandID.cs
- DrawingContext.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- ExceptionUtil.cs
- ScrollData.cs
- Size3DValueSerializer.cs
- DocumentViewerBase.cs
- SafeSystemMetrics.cs
- CounterSampleCalculator.cs
- DataTableTypeConverter.cs
- ZipIOExtraFieldElement.cs
- OleDbPermission.cs
- CodeTypeParameter.cs
- ContentFilePart.cs
- LoadedEvent.cs
- Line.cs
- PeerIPHelper.cs
- XmlEventCache.cs
- PinProtectionHelper.cs
- PartitionedStream.cs
- ThicknessKeyFrameCollection.cs
- XslCompiledTransform.cs
- TableLayoutPanel.cs
- SQLInt64.cs
- WebPartConnectionCollection.cs
- ApplicationId.cs
- SetterTriggerConditionValueConverter.cs
- Propagator.cs
- Send.cs
- SystemIPGlobalStatistics.cs
- ResourcesBuildProvider.cs
- AtomEntry.cs
- DbExpressionVisitor.cs
- PinnedBufferMemoryStream.cs
- MultiView.cs
- IOException.cs
- ItemList.cs
- CopyAction.cs
- VerificationAttribute.cs
- WebPartActionVerb.cs
- ReadingWritingEntityEventArgs.cs
- CheckBoxStandardAdapter.cs
- ExtendedProtectionPolicyElement.cs
- ObsoleteAttribute.cs
- GlyphsSerializer.cs
- DataPager.cs
- CompletionProxy.cs
- FixedDSBuilder.cs
- RequestCachingSection.cs
- OdbcConnectionString.cs
- datacache.cs
- Screen.cs
- XmlKeywords.cs
- SystemParameters.cs
- UITypeEditor.cs
- FontCacheLogic.cs
- StylusPointDescription.cs
- DockAndAnchorLayout.cs
- SegmentTree.cs
- QilTernary.cs
- QilStrConcatenator.cs