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
- TraceContextEventArgs.cs
- ResourceContainer.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- PkcsMisc.cs
- iisPickupDirectory.cs
- MultiTargetingUtil.cs
- TrustManager.cs
- PseudoWebRequest.cs
- TypeSource.cs
- VersionedStreamOwner.cs
- HttpContext.cs
- SecurityContextKeyIdentifierClause.cs
- SequentialOutput.cs
- TextWriter.cs
- NotifyIcon.cs
- EllipseGeometry.cs
- MailHeaderInfo.cs
- ExceptionUtility.cs
- WebServiceHandler.cs
- WindowsListView.cs
- WorkflowCompensationBehavior.cs
- ValidationEventArgs.cs
- ValidationUtility.cs
- RootProfilePropertySettingsCollection.cs
- DataRecordInternal.cs
- DefaultSection.cs
- handlecollector.cs
- WinEventQueueItem.cs
- Timeline.cs
- smtpconnection.cs
- WeakRefEnumerator.cs
- XmlSchemaException.cs
- XmlMapping.cs
- PropertyItem.cs
- SimpleModelProvider.cs
- ActivityInstanceReference.cs
- BuildProvider.cs
- ResolveMatchesMessage11.cs
- NetSectionGroup.cs
- DateTime.cs
- NameValueConfigurationElement.cs
- UserControlBuildProvider.cs
- ColumnBinding.cs
- LiteralTextContainerControlBuilder.cs
- DbExpressionRules.cs
- CompiledRegexRunnerFactory.cs
- PreviewKeyDownEventArgs.cs
- TcpStreams.cs
- ListBindingHelper.cs
- Method.cs
- ClientConfigurationSystem.cs
- ScriptReferenceBase.cs
- RuleProcessor.cs
- Selector.cs
- ByteStream.cs
- Socket.cs
- StreamHelper.cs
- EmptyEnumerator.cs
- ButtonBaseAutomationPeer.cs
- EntityClassGenerator.cs
- APCustomTypeDescriptor.cs
- XmlSchemaAttributeGroupRef.cs
- Calendar.cs
- XamlReaderHelper.cs
- ErrorFormatter.cs
- FixedSOMPageElement.cs
- SQLInt16.cs
- CloudCollection.cs
- AutomationPropertyInfo.cs
- VSWCFServiceContractGenerator.cs
- WSSecurityPolicy.cs
- LambdaCompiler.Expressions.cs
- ComponentCollection.cs
- XPathBinder.cs
- DataGridBoolColumn.cs
- SystemException.cs
- ClientTargetSection.cs
- DataGridColumnCollection.cs
- TrustLevel.cs
- MultipartContentParser.cs
- ManipulationCompletedEventArgs.cs
- SafeUserTokenHandle.cs
- FollowerQueueCreator.cs
- IdentityModelDictionary.cs
- ProviderSettings.cs
- NamespaceCollection.cs
- SingleObjectCollection.cs
- ImageList.cs
- GPRECTF.cs
- RotateTransform.cs
- RegisteredHiddenField.cs
- CatalogPart.cs
- ByteStack.cs
- RelatedEnd.cs
- StaticResourceExtension.cs
- PaginationProgressEventArgs.cs
- StoreUtilities.cs
- QueryStringParameter.cs
- OletxVolatileEnlistment.cs
- Vector3D.cs