Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / SizeChangedEventArgs.cs / 1 / SizeChangedEventArgs.cs
using System; namespace System.Windows { ////// The SizeChangedEventArgs class is used by SizeChangedEventHandler. /// This handler is used for ComputedWidthChanged and ComputedHeightChanged events /// on UIElement. /// public class SizeChangedEventArgs : RoutedEventArgs { ////// Initializes a new instance of the SizeChangedEventArgs class. /// /// /// The UIElement which has its size changed by layout engine/>. /// /// /// The SizeChangeInfo that is used by. /// internal SizeChangedEventArgs(UIElement element, SizeChangedInfo info) { if (info == null) { throw new ArgumentNullException("info"); } if (element == null) { throw new ArgumentNullException("element"); } _element = element; _previousSize = info.PreviousSize; if(info.WidthChanged) _bits |= _widthChangedBit; if(info.HeightChanged) _bits |= _heightChangedBit; } /// /// Read-only access to the previous Size /// public Size PreviousSize { get { return _previousSize; } } ////// Read-only access to the new Size /// public Size NewSize { get { return _element.RenderSize; } } ////// Read-only access to the flag indicating that Width component of the size changed. /// Note that due to double math /// effects, the it may be (previousSize.Width != newSize.Width) and widthChanged = true. /// This may happen in layout when sizes of objects are fluctuating because of a precision "jitter" of /// the input parameters, but the overall scene is considered to be "the same" so no visible changes /// will be detected. Typically, the handler of SizeChangedEvent should check this bit to avoid /// invalidation of layout if the dimension didn't change. /// public bool WidthChanged { get { return ((_bits & _widthChangedBit) != 0); } } ////// Read-only access to the flag indicating that Height component of the size changed. /// Note that due to double math /// effects, the it may be (previousSize.Height != newSize.Height) and heightChanged = true. /// This may happen in layout when sizes of objects are fluctuating because of a precision "jitter" of /// the input parameters, but the overall scene is considered to be "the same" so no visible changes /// will be detected. Typically, the handler of SizeChangedEvent should check this bit to avoid /// invalidation of layout if the dimension didn't change. /// public bool HeightChanged { get { return ((_bits & _heightChangedBit) != 0); } } private Size _previousSize; private UIElement _element; private byte _bits; private static byte _widthChangedBit = 0x1; private static byte _heightChangedBit = 0x2; ////// The mechanism used to call the type-specific handler on the /// target. /// /// /// The generic handler to call in a type-specific way. /// /// /// The target to call the handler on. /// ///protected override void InvokeEventHandler(Delegate genericHandler, object genericTarget) { SizeChangedEventHandler handler = (SizeChangedEventHandler) genericHandler; handler(genericTarget, this); } } } // 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
- XsdSchemaFileEditor.cs
- DefaultAsyncDataDispatcher.cs
- TraceUtility.cs
- TypeConverterHelper.cs
- ProviderConnectionPointCollection.cs
- DetailsViewDeleteEventArgs.cs
- Thread.cs
- InputLanguageSource.cs
- EditCommandColumn.cs
- COMException.cs
- DetailsViewRow.cs
- FixedTextSelectionProcessor.cs
- DataSourceDescriptorCollection.cs
- LogicalCallContext.cs
- HttpListenerResponse.cs
- MetricEntry.cs
- SqlRowUpdatedEvent.cs
- __ComObject.cs
- HybridDictionary.cs
- MergeFilterQuery.cs
- NavigationExpr.cs
- Clock.cs
- DataList.cs
- AddingNewEventArgs.cs
- SHA512Managed.cs
- SchemaMerger.cs
- GeneralTransform3D.cs
- UnsafeNativeMethods.cs
- BrushMappingModeValidation.cs
- ResourceDescriptionAttribute.cs
- ProfileService.cs
- RepeatEnumerable.cs
- ItemContainerPattern.cs
- CodePageUtils.cs
- ToolStripContextMenu.cs
- X509PeerCertificateAuthenticationElement.cs
- TimeZone.cs
- ScriptResourceInfo.cs
- Splitter.cs
- ElementUtil.cs
- InlinedLocationReference.cs
- ArrangedElement.cs
- IntSecurity.cs
- PingReply.cs
- PointCollection.cs
- COM2ExtendedUITypeEditor.cs
- ZipIOCentralDirectoryFileHeader.cs
- AssemblyBuilder.cs
- SqlUdtInfo.cs
- SelectionWordBreaker.cs
- LocationSectionRecord.cs
- DataGrid.cs
- FilterRepeater.cs
- KeyValueSerializer.cs
- XmlObjectSerializerWriteContextComplex.cs
- CodeCatchClause.cs
- metadatamappinghashervisitor.cs
- TextBoxLine.cs
- Calendar.cs
- BinaryParser.cs
- ServerValidateEventArgs.cs
- WebZoneDesigner.cs
- ToolStripDropDownClosedEventArgs.cs
- AnonymousIdentificationSection.cs
- DynamicResourceExtension.cs
- TextProperties.cs
- SqlFileStream.cs
- SecurityMessageProperty.cs
- XmlSchemaException.cs
- HashMembershipCondition.cs
- ParseElement.cs
- ChangeConflicts.cs
- ipaddressinformationcollection.cs
- ElementsClipboardData.cs
- XmlEncodedRawTextWriter.cs
- Command.cs
- CryptoApi.cs
- TextFormatterImp.cs
- SafeTimerHandle.cs
- MDIClient.cs
- ItemsControl.cs
- Menu.cs
- SiteMapNodeItemEventArgs.cs
- CodeConstructor.cs
- Stacktrace.cs
- ReferencedAssemblyResolver.cs
- COM2IPerPropertyBrowsingHandler.cs
- ExpressionBuilder.cs
- SByteStorage.cs
- Buffer.cs
- MessageBox.cs
- XmlSchemaAppInfo.cs
- DurableErrorHandler.cs
- OdbcFactory.cs
- GridToolTip.cs
- ToolStripPanelDesigner.cs
- AnnotationComponentChooser.cs
- OpCodes.cs
- GridViewColumnHeaderAutomationPeer.cs
- FixedBufferAttribute.cs