Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ // 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
- DataComponentNameHandler.cs
- MobileTextWriter.cs
- ActivityScheduledRecord.cs
- BinaryNode.cs
- DynamicField.cs
- WpfPayload.cs
- ContainsRowNumberChecker.cs
- DeclaredTypeElement.cs
- DBSqlParserColumnCollection.cs
- MemoryMappedFileSecurity.cs
- PauseStoryboard.cs
- _NegotiateClient.cs
- DecoderBestFitFallback.cs
- GeneralTransform.cs
- dbenumerator.cs
- ValidationPropertyAttribute.cs
- SecurityUtils.cs
- Matrix.cs
- CancelEventArgs.cs
- DetailsView.cs
- RuleSettings.cs
- DataGridViewComboBoxEditingControl.cs
- SafeProcessHandle.cs
- _LoggingObject.cs
- HttpContextBase.cs
- BamlWriter.cs
- DataColumnSelectionConverter.cs
- SqlRowUpdatingEvent.cs
- FramingFormat.cs
- LingerOption.cs
- InitiatorSessionSymmetricTransportSecurityProtocol.cs
- VersionConverter.cs
- PackUriHelper.cs
- ProviderUtil.cs
- NotifyIcon.cs
- FontWeights.cs
- ActionMessageFilterTable.cs
- EDesignUtil.cs
- LZCodec.cs
- BindToObject.cs
- WindowsToolbarItemAsMenuItem.cs
- BufferedStream.cs
- RegistryKey.cs
- ObjectDataProvider.cs
- SettingsPropertyValueCollection.cs
- PresentationAppDomainManager.cs
- ControlDesignerState.cs
- LocalBuilder.cs
- MDIClient.cs
- SqlExpressionNullability.cs
- ReflectionUtil.cs
- ClientOperation.cs
- SubtreeProcessor.cs
- HttpPostedFile.cs
- XmlExceptionHelper.cs
- CodeDirectoryCompiler.cs
- XsdDuration.cs
- CreateDataSourceDialog.cs
- Publisher.cs
- WaitHandle.cs
- ConstructorArgumentAttribute.cs
- CodeCommentStatement.cs
- TcpClientCredentialType.cs
- PasswordBox.cs
- Win32SafeHandles.cs
- BindValidationContext.cs
- WpfGeneratedKnownProperties.cs
- CancellationToken.cs
- EventArgs.cs
- SecurityHelper.cs
- DataGridViewRowPostPaintEventArgs.cs
- OleDbPermission.cs
- MessageEnumerator.cs
- DependencyObjectPropertyDescriptor.cs
- DateTimeParse.cs
- CompensationDesigner.cs
- DoWhileDesigner.xaml.cs
- LogStore.cs
- ConnectionStringsExpressionBuilder.cs
- SmtpSection.cs
- UnsafeNativeMethods.cs
- ShimAsPublicXamlType.cs
- SqlDependencyListener.cs
- TickBar.cs
- UnknownBitmapEncoder.cs
- CryptoHandle.cs
- XmlILOptimizerVisitor.cs
- BaseCollection.cs
- PerfCounters.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- PropertyRecord.cs
- XPathArrayIterator.cs
- TokenBasedSetEnumerator.cs
- DbTransaction.cs
- FamilyMapCollection.cs
- CacheOutputQuery.cs
- ToolTip.cs
- basecomparevalidator.cs
- SoapCodeExporter.cs
- LabelAutomationPeer.cs