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
- Quad.cs
- ToolStripRendererSwitcher.cs
- DataGridViewMethods.cs
- LabelEditEvent.cs
- BatchStream.cs
- Accessible.cs
- DataGridViewColumnEventArgs.cs
- ListBoxItem.cs
- SqlDependency.cs
- Trace.cs
- SplineKeyFrames.cs
- ObjectDataSourceSelectingEventArgs.cs
- Errors.cs
- PackagePart.cs
- BaseParagraph.cs
- DateTimePicker.cs
- PrefixHandle.cs
- IIS7WorkerRequest.cs
- ToolBarPanel.cs
- ServiceModelReg.cs
- PcmConverter.cs
- LinearKeyFrames.cs
- TagPrefixInfo.cs
- handlecollector.cs
- EndpointAddressProcessor.cs
- RequestCache.cs
- BinaryFormatter.cs
- SoapConverter.cs
- ScriptRef.cs
- SQLByte.cs
- HorizontalAlignConverter.cs
- Light.cs
- CrossAppDomainChannel.cs
- QueryAsyncResult.cs
- CollectionViewSource.cs
- Image.cs
- Soap.cs
- SqlMethodTransformer.cs
- MultiBinding.cs
- VisualStyleElement.cs
- DataTablePropertyDescriptor.cs
- ListBox.cs
- GlyphCollection.cs
- Vector.cs
- MasterPage.cs
- ListBoxItemWrapperAutomationPeer.cs
- NTAccount.cs
- SafeNativeMethods.cs
- MimeAnyImporter.cs
- ProxySimple.cs
- JsonEncodingStreamWrapper.cs
- MonitorWrapper.cs
- KeyMatchBuilder.cs
- CodeDOMProvider.cs
- MultipleViewProviderWrapper.cs
- ListViewGroupConverter.cs
- BufferedGraphicsManager.cs
- PagedDataSource.cs
- Serializer.cs
- DataGridViewCellLinkedList.cs
- HotSpotCollection.cs
- ControlBuilder.cs
- QuaternionKeyFrameCollection.cs
- Underline.cs
- ContractType.cs
- SimpleRecyclingCache.cs
- Set.cs
- ReservationNotFoundException.cs
- PropertyGridView.cs
- ArgumentReference.cs
- ExceptionTrace.cs
- OdbcErrorCollection.cs
- OleDbInfoMessageEvent.cs
- DaylightTime.cs
- ScriptResourceMapping.cs
- XmlLanguage.cs
- EntitySetBaseCollection.cs
- WinFormsSecurity.cs
- ReflectionPermission.cs
- DetailsViewDeletedEventArgs.cs
- SignatureResourcePool.cs
- RuleDefinitions.cs
- SchemaElementLookUpTableEnumerator.cs
- DiscoveryExceptionDictionary.cs
- TdsParser.cs
- ObjectParameterCollection.cs
- PageOrientation.cs
- HtmlSelect.cs
- IPipelineRuntime.cs
- VerificationException.cs
- Marshal.cs
- ScriptManager.cs
- UITypeEditors.cs
- SecurityHelper.cs
- TypeBuilder.cs
- AutomationEventArgs.cs
- BamlBinaryWriter.cs
- DictionaryGlobals.cs
- Event.cs
- PartialCachingAttribute.cs