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
- FormsAuthenticationConfiguration.cs
- CultureInfoConverter.cs
- UndoEngine.cs
- EdmFunction.cs
- Label.cs
- TabControl.cs
- UrlPath.cs
- ConnectionStringsExpressionBuilder.cs
- SwitchAttribute.cs
- ServicePointManagerElement.cs
- DataGridItemEventArgs.cs
- SpeechRecognitionEngine.cs
- FirstQueryOperator.cs
- TypeInitializationException.cs
- UrlPropertyAttribute.cs
- ImageList.cs
- ScriptComponentDescriptor.cs
- PrivateFontCollection.cs
- RenderingBiasValidation.cs
- HttpCookieCollection.cs
- LoginUtil.cs
- ToolboxItemSnapLineBehavior.cs
- PreloadedPackages.cs
- SchemaNames.cs
- RectangleGeometry.cs
- LoadGrammarCompletedEventArgs.cs
- MobileContainerDesigner.cs
- ApplicationDirectoryMembershipCondition.cs
- DragDeltaEventArgs.cs
- WorkflowEnvironment.cs
- WebChannelFactory.cs
- ToolBarTray.cs
- SectionRecord.cs
- RegisteredArrayDeclaration.cs
- ExtenderProvidedPropertyAttribute.cs
- ToolStripContainer.cs
- AutomationElement.cs
- OutputCacheProfileCollection.cs
- SkipStoryboardToFill.cs
- CmsInterop.cs
- DataColumnMappingCollection.cs
- TraceSection.cs
- SafeRightsManagementSessionHandle.cs
- Evaluator.cs
- DropShadowBitmapEffect.cs
- DesignerVerbCollection.cs
- ClientSponsor.cs
- DataGridViewRow.cs
- ClassicBorderDecorator.cs
- TextContainerChangeEventArgs.cs
- AVElementHelper.cs
- Line.cs
- ServiceObjectContainer.cs
- OrderedDictionary.cs
- OleDbRowUpdatedEvent.cs
- TiffBitmapDecoder.cs
- UnsafeCollabNativeMethods.cs
- DataGridViewLayoutData.cs
- DataSourceHelper.cs
- DataGridViewUtilities.cs
- CodeSubDirectoriesCollection.cs
- TextSerializer.cs
- Rfc4050KeyFormatter.cs
- GlyphInfoList.cs
- TemporaryBitmapFile.cs
- TimeStampChecker.cs
- cryptoapiTransform.cs
- ValidationError.cs
- OutputCacheSettings.cs
- ListenerConnectionDemuxer.cs
- SecurityKeyType.cs
- ScrollChrome.cs
- EventHandlerList.cs
- DataObjectSettingDataEventArgs.cs
- ListViewItemSelectionChangedEvent.cs
- GiveFeedbackEventArgs.cs
- XmlWriterTraceListener.cs
- FocusChangedEventArgs.cs
- Part.cs
- InputGestureCollection.cs
- Char.cs
- CachedTypeface.cs
- BitSet.cs
- PersonalizablePropertyEntry.cs
- CssTextWriter.cs
- CellConstantDomain.cs
- OutOfMemoryException.cs
- TabPanel.cs
- ListDictionaryInternal.cs
- MultipleViewProviderWrapper.cs
- DocumentStream.cs
- TemplateParser.cs
- TrackingSection.cs
- DefaultValueTypeConverter.cs
- ResourceAttributes.cs
- RequestBringIntoViewEventArgs.cs
- GroupBoxRenderer.cs
- ECDiffieHellman.cs
- RawAppCommandInputReport.cs
- WebControlsSection.cs