Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ReachFixedDocumentSerializerAsync.cs
- AdornerPresentationContext.cs
- ItemContainerGenerator.cs
- XslNumber.cs
- HtmlAnchor.cs
- GridViewRow.cs
- DataGridViewTextBoxColumn.cs
- RowToFieldTransformer.cs
- DictionaryTraceRecord.cs
- CodeNamespace.cs
- Debug.cs
- ReflectionPermission.cs
- OutputScopeManager.cs
- PropertyTabChangedEvent.cs
- TreeBuilder.cs
- SafeUserTokenHandle.cs
- NumericExpr.cs
- PanningMessageFilter.cs
- DesignOnlyAttribute.cs
- DataTablePropertyDescriptor.cs
- MimeMultiPart.cs
- TextEditorSelection.cs
- DocumentPageViewAutomationPeer.cs
- DesignerRegionMouseEventArgs.cs
- RSAPKCS1SignatureFormatter.cs
- SharedUtils.cs
- ShellProvider.cs
- SqlBinder.cs
- CheckBox.cs
- ToolStripEditorManager.cs
- NonVisualControlAttribute.cs
- MarkupWriter.cs
- VectorKeyFrameCollection.cs
- AutomationEvent.cs
- DesignerExtenders.cs
- CharacterMetricsDictionary.cs
- ModelTreeEnumerator.cs
- ChildDocumentBlock.cs
- OdbcStatementHandle.cs
- ParseElement.cs
- LassoHelper.cs
- CompilationUnit.cs
- OuterGlowBitmapEffect.cs
- StylusPointPropertyInfo.cs
- coordinator.cs
- NonSerializedAttribute.cs
- ContextMarshalException.cs
- GenericParameterDataContract.cs
- SoapElementAttribute.cs
- Int32RectValueSerializer.cs
- DataSourceDesigner.cs
- BuildProvider.cs
- FigureParagraph.cs
- SqlBinder.cs
- EntityParameterCollection.cs
- FormViewModeEventArgs.cs
- FormatterServices.cs
- Schema.cs
- UIServiceHelper.cs
- SSmlParser.cs
- WorkerRequest.cs
- ButtonColumn.cs
- State.cs
- IfAction.cs
- TextProperties.cs
- ImageFormat.cs
- ObjectItemCollection.cs
- RegexGroupCollection.cs
- ZipFileInfoCollection.cs
- ListViewContainer.cs
- RelationshipEndCollection.cs
- METAHEADER.cs
- MemberRestriction.cs
- EventDescriptorCollection.cs
- WeakReadOnlyCollection.cs
- SqlRowUpdatedEvent.cs
- QueryExtender.cs
- SRGSCompiler.cs
- ListViewContainer.cs
- DataGridViewComboBoxColumn.cs
- ColumnResult.cs
- HandoffBehavior.cs
- PasswordRecovery.cs
- DataObjectAttribute.cs
- RsaKeyGen.cs
- SizeConverter.cs
- SymbolPair.cs
- SqlNotificationRequest.cs
- SystemParameters.cs
- SettingsContext.cs
- RenderingEventArgs.cs
- XmlWrappingReader.cs
- DebugInfoGenerator.cs
- WebPartCatalogAddVerb.cs
- InputElement.cs
- TextServicesManager.cs
- EmptyReadOnlyDictionaryInternal.cs
- TextElementEnumerator.cs
- Timer.cs
- RemotingSurrogateSelector.cs