Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- TemplateAction.cs
- ScrollItemPatternIdentifiers.cs
- SerialPinChanges.cs
- TabItemAutomationPeer.cs
- UserControlAutomationPeer.cs
- commandenforcer.cs
- AuthenticationServiceManager.cs
- TextEditorTyping.cs
- PolygonHotSpot.cs
- Splitter.cs
- RadioButtonFlatAdapter.cs
- FontDialog.cs
- URLMembershipCondition.cs
- JsonClassDataContract.cs
- BitmapEffect.cs
- InvokeGenerator.cs
- AvTrace.cs
- BitVector32.cs
- EventHandlerList.cs
- PointKeyFrameCollection.cs
- Visual3D.cs
- FlowSwitch.cs
- PassportAuthenticationEventArgs.cs
- DependencyObject.cs
- SignatureToken.cs
- DummyDataSource.cs
- EntityDataSourceSelectedEventArgs.cs
- CalendarDay.cs
- RelatedImageListAttribute.cs
- XamlInt32CollectionSerializer.cs
- EventDriven.cs
- StrongName.cs
- WebReferenceOptions.cs
- HMAC.cs
- WizardPanel.cs
- AlternationConverter.cs
- BCLDebug.cs
- WsdlContractConversionContext.cs
- WMIGenerator.cs
- VirtualPathProvider.cs
- BindingListCollectionView.cs
- CommentGlyph.cs
- Overlapped.cs
- Crc32.cs
- UnauthorizedWebPart.cs
- MetabaseServerConfig.cs
- DataPagerFieldItem.cs
- HistoryEventArgs.cs
- XslTransformFileEditor.cs
- UnsafeNativeMethods.cs
- Activity.cs
- MetadataItemEmitter.cs
- ClientUtils.cs
- NameTable.cs
- CompoundFileDeflateTransform.cs
- AggregateNode.cs
- Emitter.cs
- SqlXmlStorage.cs
- SafeLocalMemHandle.cs
- ServiceModelInstallComponent.cs
- Brushes.cs
- FamilyCollection.cs
- MultiAsyncResult.cs
- MLangCodePageEncoding.cs
- CircleHotSpot.cs
- Visual3D.cs
- SetUserPreferenceRequest.cs
- Line.cs
- RecognizedPhrase.cs
- followingsibling.cs
- NamedObjectList.cs
- TextOutput.cs
- FieldMetadata.cs
- TryCatch.cs
- XmlIlGenerator.cs
- SystemResourceKey.cs
- ThemeDirectoryCompiler.cs
- LocatorGroup.cs
- ConditionalAttribute.cs
- TempFiles.cs
- CallContext.cs
- ServicePointManagerElement.cs
- SingleQueryOperator.cs
- Positioning.cs
- UpdateExpressionVisitor.cs
- IPAddress.cs
- MethodMessage.cs
- ExpressionBuilder.cs
- ReadWriteSpinLock.cs
- BatchWriter.cs
- HttpWriter.cs
- Span.cs
- RestHandlerFactory.cs
- ScalarOps.cs
- CompoundFileDeflateTransform.cs
- QuerySetOp.cs
- XmlSchemaRedefine.cs
- RectangleConverter.cs
- DataFieldEditor.cs
- Matrix3DValueSerializer.cs