Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / SizeChangedInfo.cs / 1 / SizeChangedInfo.cs
using System;
namespace System.Windows
{
///
/// The SizeChangedinfo class is used as a parameter to OnSizeRenderChanged.
///
public class SizeChangedInfo
{
///
/// Initializes a new instance of the SizeChangedinfo class.
///
///
/// The element which size is changing.
///
///
/// The size of the object before update. New size is element.RenderSize
///
///
/// 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.
///
///
/// 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 SizeChangedInfo(UIElement element, Size previousSize, bool widthChanged, bool heightChanged)
{
_element = element;
_previousSize = previousSize;
_widthChanged = widthChanged;
_heightChanged = heightChanged;
}
///
/// 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 _widthChanged; }
}
///
/// 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 _heightChanged; }
}
//this method is used by UIElement to "accumulate" several cosequitive layout updates
//into the single args object cahced on UIElement. Since the SizeChanged is deferred event,
//there could be several size changes before it will actually fire.
internal void Update(bool widthChanged, bool heightChanged)
{
_widthChanged = _widthChanged | widthChanged;
_heightChanged = _heightChanged | heightChanged;
}
internal UIElement Element
{
get { return _element; }
}
private UIElement _element;
private Size _previousSize;
private bool _widthChanged;
private bool _heightChanged;
internal SizeChangedInfo Next;
}
}
// 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
- PagesSection.cs
- InstanceBehavior.cs
- PointAnimationUsingPath.cs
- TypeToTreeConverter.cs
- Adorner.cs
- DashStyle.cs
- PropertyDescriptorComparer.cs
- SecurityPolicySection.cs
- AuthorizationContext.cs
- Misc.cs
- ValidateNames.cs
- AesManaged.cs
- NamedPipeAppDomainProtocolHandler.cs
- XmlLangPropertyAttribute.cs
- MemberCollection.cs
- InvalidTimeZoneException.cs
- UrlPath.cs
- basecomparevalidator.cs
- FileNotFoundException.cs
- Matrix3D.cs
- QilDataSource.cs
- XmlSchemaAttributeGroup.cs
- WindowsListViewGroupSubsetLink.cs
- SerTrace.cs
- UInt16Storage.cs
- NameScope.cs
- XmlCharCheckingWriter.cs
- ProcessModuleCollection.cs
- XmlWriterTraceListener.cs
- RelAssertionDirectKeyIdentifierClause.cs
- XmlHierarchicalEnumerable.cs
- FieldNameLookup.cs
- FixedTextView.cs
- SspiSafeHandles.cs
- DataViewSettingCollection.cs
- InkCanvasInnerCanvas.cs
- SqlBulkCopy.cs
- TextRangeEdit.cs
- ActionMessageFilterTable.cs
- TextTreeDeleteContentUndoUnit.cs
- AggregateNode.cs
- XmlSchemaSubstitutionGroup.cs
- InvalidFilterCriteriaException.cs
- ConfigurationLocationCollection.cs
- RoleBoolean.cs
- PrimaryKeyTypeConverter.cs
- XmlSchemaExporter.cs
- CodeVariableReferenceExpression.cs
- ErrorFormatterPage.cs
- PropertyInfoSet.cs
- HealthMonitoringSectionHelper.cs
- SparseMemoryStream.cs
- TargetControlTypeAttribute.cs
- FixedSOMPageConstructor.cs
- VoiceSynthesis.cs
- RowUpdatedEventArgs.cs
- KeyProperty.cs
- EntityModelBuildProvider.cs
- XmlComment.cs
- DesignerOptionService.cs
- StringCollection.cs
- ValidationHelper.cs
- BidPrivateBase.cs
- TreeViewHitTestInfo.cs
- AssemblyAttributes.cs
- UniqueContractNameValidationBehavior.cs
- TraceInternal.cs
- ImportException.cs
- PeerInvitationResponse.cs
- TextDecorations.cs
- PlanCompiler.cs
- ResourceKey.cs
- ApplicationContext.cs
- DataServiceRequestException.cs
- CacheForPrimitiveTypes.cs
- XmlToDatasetMap.cs
- SafeSystemMetrics.cs
- XmlSchemas.cs
- ConfigurationException.cs
- Message.cs
- BinaryObjectWriter.cs
- ColumnResult.cs
- BooleanExpr.cs
- SchemaLookupTable.cs
- RoutingChannelExtension.cs
- EntityConnectionStringBuilderItem.cs
- RuntimeWrappedException.cs
- SiteIdentityPermission.cs
- DataSourceXmlTextReader.cs
- ReadOnlyDictionary.cs
- InternalBase.cs
- IisTraceWebEventProvider.cs
- TabItemWrapperAutomationPeer.cs
- CodeAssignStatement.cs
- DependencyPropertyChangedEventArgs.cs
- RegisteredExpandoAttribute.cs
- UnsafePeerToPeerMethods.cs
- SHA256CryptoServiceProvider.cs
- HijriCalendar.cs
- SizeF.cs