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
- SoapAttributeOverrides.cs
- XmlSchemaElement.cs
- Accessible.cs
- WebPartConnectionsDisconnectVerb.cs
- ActivityExecutionFilter.cs
- Regex.cs
- PhoneCall.cs
- CodeEntryPointMethod.cs
- COM2PictureConverter.cs
- ServiceModelConfiguration.cs
- HostVisual.cs
- XNameTypeConverter.cs
- HuffCodec.cs
- SqlClientWrapperSmiStreamChars.cs
- IriParsingElement.cs
- Confirm.cs
- CodeMemberProperty.cs
- EntityDataSourceStatementEditor.cs
- ShaderEffect.cs
- Throw.cs
- ControlEvent.cs
- ToolZone.cs
- DbReferenceCollection.cs
- XPathDocumentIterator.cs
- SetStoryboardSpeedRatio.cs
- InstanceOwnerQueryResult.cs
- PropertyGridCommands.cs
- XmlNamespaceManager.cs
- XmlC14NWriter.cs
- ExpressionWriter.cs
- _NetRes.cs
- ISCIIEncoding.cs
- FormClosedEvent.cs
- ConfigurationStrings.cs
- EventProxy.cs
- ProxyWebPartManagerDesigner.cs
- ChameleonKey.cs
- TypeExtension.cs
- ModuleElement.cs
- FullTextBreakpoint.cs
- ZipIOLocalFileBlock.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- ExpressionBindingCollection.cs
- SecurityPolicySection.cs
- BaseDataList.cs
- DocumentOrderQuery.cs
- GridSplitter.cs
- ButtonRenderer.cs
- HwndAppCommandInputProvider.cs
- XmlReaderSettings.cs
- PrincipalPermission.cs
- BindingListCollectionView.cs
- VBCodeProvider.cs
- SID.cs
- ToggleButtonAutomationPeer.cs
- AnimationLayer.cs
- FontUnit.cs
- UrlAuthFailedErrorFormatter.cs
- ParameterExpression.cs
- TextContainer.cs
- CatalogZone.cs
- UpDownEvent.cs
- EventBuilder.cs
- FontNamesConverter.cs
- XmlSchemaRedefine.cs
- SmtpNegotiateAuthenticationModule.cs
- ListViewItemCollectionEditor.cs
- MetabaseServerConfig.cs
- FixedPageProcessor.cs
- PathFigureCollection.cs
- Int32Rect.cs
- RouteUrlExpressionBuilder.cs
- CodeSubDirectory.cs
- TransformBlockRequest.cs
- XmlCharType.cs
- ColumnWidthChangingEvent.cs
- XmlToDatasetMap.cs
- SQLByteStorage.cs
- ProxyWebPart.cs
- Hash.cs
- TextPointerBase.cs
- SqlProviderManifest.cs
- SetMemberBinder.cs
- GraphicsPathIterator.cs
- DBCommand.cs
- MonitorWrapper.cs
- WaitForChangedResult.cs
- SafeNativeMethods.cs
- DesignerEditorPartChrome.cs
- MultiDataTrigger.cs
- NonVisualControlAttribute.cs
- EllipticalNodeOperations.cs
- UnknownWrapper.cs
- TypeInfo.cs
- ExtensionDataObject.cs
- HashMembershipCondition.cs
- StringOutput.cs
- DbModificationCommandTree.cs
- SocketElement.cs
- AppendHelper.cs