Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / MouseOverProperty.cs / 1305600 / 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
- TableCell.cs
- HttpCachePolicy.cs
- TextSpan.cs
- NotifyInputEventArgs.cs
- SafeFileMapViewHandle.cs
- AssemblyResourceLoader.cs
- ManagementClass.cs
- NullableDoubleMinMaxAggregationOperator.cs
- ExclusiveTcpListener.cs
- OpenTypeMethods.cs
- LoginDesigner.cs
- TextBoxLine.cs
- Rotation3DKeyFrameCollection.cs
- DateTimeOffsetAdapter.cs
- ContentControl.cs
- LateBoundBitmapDecoder.cs
- CaseCqlBlock.cs
- XmlSchema.cs
- ServicesUtilities.cs
- ConstructorBuilder.cs
- DataGridRow.cs
- Model3DGroup.cs
- Parameter.cs
- AssemblySettingAttributes.cs
- AspCompat.cs
- AsyncWaitHandle.cs
- LazyTextWriterCreator.cs
- MDIControlStrip.cs
- TagPrefixAttribute.cs
- DeclarativeCatalogPart.cs
- EntityDescriptor.cs
- Expr.cs
- SqlUserDefinedAggregateAttribute.cs
- WebBrowserHelper.cs
- DeviceSpecificDesigner.cs
- CompilerGeneratedAttribute.cs
- RayMeshGeometry3DHitTestResult.cs
- DayRenderEvent.cs
- RunInstallerAttribute.cs
- PreProcessor.cs
- formatter.cs
- Preprocessor.cs
- ComplexTypeEmitter.cs
- XmlQueryContext.cs
- ZipArchive.cs
- Walker.cs
- RewritingProcessor.cs
- WebBrowserNavigatedEventHandler.cs
- DurationConverter.cs
- ClientConfigurationSystem.cs
- CompositeCollection.cs
- BooleanConverter.cs
- SafeNativeMethods.cs
- FileSystemWatcher.cs
- MsiStyleLogWriter.cs
- Matrix3D.cs
- ExtendedProtectionPolicyTypeConverter.cs
- SecurityState.cs
- SessionStateSection.cs
- Vector3D.cs
- ReverseQueryOperator.cs
- WizardStepBase.cs
- SQLSingle.cs
- SqlPersonalizationProvider.cs
- TextSyndicationContent.cs
- Image.cs
- RelationshipFixer.cs
- handlecollector.cs
- KeyEventArgs.cs
- VisualStyleElement.cs
- RuntimeHelpers.cs
- EventProviderWriter.cs
- NavigatorInput.cs
- pingexception.cs
- ResourceWriter.cs
- xmlglyphRunInfo.cs
- AliasedSlot.cs
- TimeZone.cs
- FontDriver.cs
- ClientTarget.cs
- MDIControlStrip.cs
- SynchronousChannelMergeEnumerator.cs
- CopyCodeAction.cs
- AnnotationStore.cs
- HtmlElement.cs
- GraphicsContext.cs
- DynamicFilter.cs
- TreeViewItemAutomationPeer.cs
- EncoderExceptionFallback.cs
- TemplateKeyConverter.cs
- HtmlTextArea.cs
- BinaryFormatter.cs
- SaveCardRequest.cs
- MLangCodePageEncoding.cs
- BulletedListEventArgs.cs
- ResXResourceReader.cs
- SqlServer2KCompatibilityAnnotation.cs
- Msmq.cs
- StringFunctions.cs
- SourceFileBuildProvider.cs