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
- figurelengthconverter.cs
- HWStack.cs
- ToolStripRenderEventArgs.cs
- XmlUtilWriter.cs
- HttpCachePolicy.cs
- FixedPageProcessor.cs
- DatePickerAutomationPeer.cs
- SqlTypeSystemProvider.cs
- ObjectStateManager.cs
- SystemResourceKey.cs
- WebPartMovingEventArgs.cs
- ColorIndependentAnimationStorage.cs
- StructuredType.cs
- ComplexObject.cs
- BuildProvider.cs
- Hashtable.cs
- ContextMenu.cs
- HelpProvider.cs
- NavigationCommands.cs
- EditorResources.cs
- FixedSOMTextRun.cs
- PeerApplication.cs
- TypeReference.cs
- SmiEventSink_Default.cs
- PageThemeCodeDomTreeGenerator.cs
- PngBitmapDecoder.cs
- AnnotationStore.cs
- NGCPageContentSerializerAsync.cs
- ApplicationSettingsBase.cs
- TraceLog.cs
- TextDecorationCollection.cs
- ClientSettingsSection.cs
- WebPageTraceListener.cs
- ModuleElement.cs
- SafeNativeMethodsOther.cs
- RegistryKey.cs
- ListItemParagraph.cs
- BamlBinaryReader.cs
- CryptoApi.cs
- CallbackTimeoutsBehavior.cs
- ContactManager.cs
- InputLanguageSource.cs
- Accessible.cs
- Int32RectValueSerializer.cs
- OAVariantLib.cs
- SerializationObjectManager.cs
- VisualStyleTypesAndProperties.cs
- ConfigurationProviderException.cs
- ComponentSerializationService.cs
- DocumentGrid.cs
- AccessKeyManager.cs
- XXXInfos.cs
- __ComObject.cs
- ScrollableControlDesigner.cs
- SpellerHighlightLayer.cs
- ToolboxItemFilterAttribute.cs
- CollectionViewGroup.cs
- Utility.cs
- WebPartCatalogCloseVerb.cs
- BindableTemplateBuilder.cs
- login.cs
- OperationCanceledException.cs
- TextEvent.cs
- DataQuery.cs
- RequestContext.cs
- TemplateInstanceAttribute.cs
- ServiceModelSecurityTokenTypes.cs
- SqlRowUpdatingEvent.cs
- ToolBarButton.cs
- CacheEntry.cs
- ByteStreamBufferedMessageData.cs
- DeflateStreamAsyncResult.cs
- BookmarkTable.cs
- FacetValues.cs
- XslNumber.cs
- Vector3DAnimationBase.cs
- Expander.cs
- SkewTransform.cs
- UdpTransportSettings.cs
- TcpHostedTransportConfiguration.cs
- RotateTransform3D.cs
- NonVisualControlAttribute.cs
- EdmProperty.cs
- UDPClient.cs
- BasicHttpSecurityElement.cs
- MemberPath.cs
- Pen.cs
- OdbcConnectionString.cs
- RichTextBoxAutomationPeer.cs
- Pkcs7Signer.cs
- DataObjectSettingDataEventArgs.cs
- Descriptor.cs
- UdpConstants.cs
- HasCopySemanticsAttribute.cs
- MsmqMessage.cs
- HttpHandlerActionCollection.cs
- HttpProfileGroupBase.cs
- DictionaryEntry.cs
- SessionStateItemCollection.cs
- ListCommandEventArgs.cs