Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / System / Windows / MouseOverProperty.cs / 1 / MouseOverProperty.cs
using System;
using MS.Internal.KnownBoxes;
using System.Windows.Input;
namespace System.Windows
{
/////////////////////////////////////////////////////////////////////////
internal class MouseOverProperty : ReverseInheritProperty
{
/////////////////////////////////////////////////////////////////////
internal MouseOverProperty() : base(
UIElement.IsMouseOverPropertyKey,
CoreFlags.IsMouseOverCache,
CoreFlags.IsMouseOverChanged)
{
}
/////////////////////////////////////////////////////////////////////
internal override void FireNotifications(UIElement uie, ContentElement ce, UIElement3D uie3D, bool oldValue)
{
// Before we fire the mouse event we need to figure if the notification is still relevant.
// This is because it is possible that the mouse state has changed during the previous
// property engine callout. Example: Consider a MessageBox being displayed during the
// IsMouseOver OnPropertyChanged override.
bool shouldFireNotification = false;
if (uie != null)
{
shouldFireNotification = (!oldValue && uie.IsMouseOver) || (oldValue && !uie.IsMouseOver);
}
else if (ce != null)
{
shouldFireNotification = (!oldValue && ce.IsMouseOver) || (oldValue && !ce.IsMouseOver);
}
else if (uie3D != null)
{
shouldFireNotification = (!oldValue && uie3D.IsMouseOver) || (oldValue && !uie3D.IsMouseOver);
}
if (shouldFireNotification)
{
MouseEventArgs mouseEventArgs = new MouseEventArgs(Mouse.PrimaryDevice, Environment.TickCount, Mouse.PrimaryDevice.StylusDevice);
mouseEventArgs.RoutedEvent = oldValue ? Mouse.MouseLeaveEvent : Mouse.MouseEnterEvent;
if (uie != null)
{
uie.RaiseEvent(mouseEventArgs);
}
else if (ce != null)
{
ce.RaiseEvent(mouseEventArgs);
}
else if (uie3D != null)
{
uie3D.RaiseEvent(mouseEventArgs);
}
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
using System;
using MS.Internal.KnownBoxes;
using System.Windows.Input;
namespace System.Windows
{
/////////////////////////////////////////////////////////////////////////
internal class MouseOverProperty : ReverseInheritProperty
{
/////////////////////////////////////////////////////////////////////
internal MouseOverProperty() : base(
UIElement.IsMouseOverPropertyKey,
CoreFlags.IsMouseOverCache,
CoreFlags.IsMouseOverChanged)
{
}
/////////////////////////////////////////////////////////////////////
internal override void FireNotifications(UIElement uie, ContentElement ce, UIElement3D uie3D, bool oldValue)
{
// Before we fire the mouse event we need to figure if the notification is still relevant.
// This is because it is possible that the mouse state has changed during the previous
// property engine callout. Example: Consider a MessageBox being displayed during the
// IsMouseOver OnPropertyChanged override.
bool shouldFireNotification = false;
if (uie != null)
{
shouldFireNotification = (!oldValue && uie.IsMouseOver) || (oldValue && !uie.IsMouseOver);
}
else if (ce != null)
{
shouldFireNotification = (!oldValue && ce.IsMouseOver) || (oldValue && !ce.IsMouseOver);
}
else if (uie3D != null)
{
shouldFireNotification = (!oldValue && uie3D.IsMouseOver) || (oldValue && !uie3D.IsMouseOver);
}
if (shouldFireNotification)
{
MouseEventArgs mouseEventArgs = new MouseEventArgs(Mouse.PrimaryDevice, Environment.TickCount, Mouse.PrimaryDevice.StylusDevice);
mouseEventArgs.RoutedEvent = oldValue ? Mouse.MouseLeaveEvent : Mouse.MouseEnterEvent;
if (uie != null)
{
uie.RaiseEvent(mouseEventArgs);
}
else if (ce != null)
{
ce.RaiseEvent(mouseEventArgs);
}
else if (uie3D != null)
{
uie3D.RaiseEvent(mouseEventArgs);
}
}
}
}
}
// 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
- Memoizer.cs
- HyperLinkColumn.cs
- FormatVersion.cs
- CheckBoxStandardAdapter.cs
- MetabaseSettings.cs
- HtmlTextArea.cs
- Rect3DValueSerializer.cs
- XmlReturnWriter.cs
- DecoratedNameAttribute.cs
- EditorPartChrome.cs
- ByteBufferPool.cs
- XXXInfos.cs
- ClientEventManager.cs
- DictionarySectionHandler.cs
- StylusButtonCollection.cs
- HtmlInputControl.cs
- DescendantQuery.cs
- SessionStateItemCollection.cs
- PlatformCulture.cs
- AppDomainInfo.cs
- securitycriticaldata.cs
- SmtpClient.cs
- ButtonFieldBase.cs
- OleTxTransaction.cs
- SqlRowUpdatingEvent.cs
- DBCSCodePageEncoding.cs
- CompositeControl.cs
- SimpleType.cs
- PenThreadWorker.cs
- EllipticalNodeOperations.cs
- WeakReferenceKey.cs
- ZipIOModeEnforcingStream.cs
- RadioButton.cs
- dataSvcMapFileLoader.cs
- StrokeIntersection.cs
- RouteData.cs
- Invariant.cs
- HttpCacheVaryByContentEncodings.cs
- ConsumerConnectionPoint.cs
- MetadataArtifactLoaderCompositeFile.cs
- BasicKeyConstraint.cs
- ShaderRenderModeValidation.cs
- RenderCapability.cs
- SrgsGrammarCompiler.cs
- printdlgexmarshaler.cs
- RegisteredExpandoAttribute.cs
- GetRecipientListRequest.cs
- VarRemapper.cs
- PeerObject.cs
- XmlWrappingReader.cs
- TextControlDesigner.cs
- ProxyWebPart.cs
- SystemBrushes.cs
- SecUtil.cs
- CheckBoxBaseAdapter.cs
- EmptyStringExpandableObjectConverter.cs
- WebInvokeAttribute.cs
- CustomErrorCollection.cs
- MemberCollection.cs
- SafeTimerHandle.cs
- DragEvent.cs
- DesignTimeVisibleAttribute.cs
- ListViewTableCell.cs
- HeaderCollection.cs
- smtpconnection.cs
- GridViewAutomationPeer.cs
- ContractsBCL.cs
- Configuration.cs
- XmlTextAttribute.cs
- DynamicValidator.cs
- SplashScreenNativeMethods.cs
- GiveFeedbackEventArgs.cs
- BamlRecordWriter.cs
- SudsCommon.cs
- DocumentViewerAutomationPeer.cs
- XmlReturnWriter.cs
- SimpleType.cs
- TextServicesPropertyRanges.cs
- DynamicPhysicalDiscoSearcher.cs
- SerializableAttribute.cs
- RuntimeResourceSet.cs
- WebPartConnectionsCancelVerb.cs
- RightsManagementEncryptionTransform.cs
- PieceDirectory.cs
- CheckBox.cs
- CalculatedColumn.cs
- CodeTypeMember.cs
- NumericExpr.cs
- Rotation3DAnimationUsingKeyFrames.cs
- LocalizedNameDescriptionPair.cs
- TraceHandler.cs
- sitestring.cs
- InternalControlCollection.cs
- MetadataArtifactLoader.cs
- HTMLTagNameToTypeMapper.cs
- Unit.cs
- XmlnsCache.cs
- SqlBuilder.cs
- IsolatedStorageFile.cs
- BaseServiceProvider.cs