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
- TypeBuilderInstantiation.cs
- EntityDataSourceSelectingEventArgs.cs
- EntityReference.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- DependencyPropertyConverter.cs
- AppModelKnownContentFactory.cs
- DataGridTextBox.cs
- ElementHostAutomationPeer.cs
- ModelUIElement3D.cs
- Win32.cs
- MaterialGroup.cs
- ConcurrencyBehavior.cs
- GenericXmlSecurityToken.cs
- PerformanceCounterPermissionEntry.cs
- NativeCompoundFileAPIs.cs
- VectorAnimation.cs
- TreeViewItem.cs
- ManipulationBoundaryFeedbackEventArgs.cs
- COMException.cs
- AncillaryOps.cs
- GeometryCollection.cs
- MenuItemStyle.cs
- RelationshipType.cs
- ProtocolViolationException.cs
- ControlEvent.cs
- TypeDescriptorContext.cs
- WhileDesigner.cs
- httpstaticobjectscollection.cs
- DbTransaction.cs
- BitmapEffectvisualstate.cs
- StylusButtonEventArgs.cs
- CancelRequestedQuery.cs
- ColorTransformHelper.cs
- Pts.cs
- InitiatorSessionSymmetricMessageSecurityProtocol.cs
- NativeMethods.cs
- Validator.cs
- HtmlWindow.cs
- StaticSiteMapProvider.cs
- DragDropManager.cs
- _SpnDictionary.cs
- util.cs
- CloseCollectionAsyncResult.cs
- CircleHotSpot.cs
- _AutoWebProxyScriptEngine.cs
- DesignerDataSchemaClass.cs
- ImageListStreamer.cs
- RequestQueue.cs
- FastEncoder.cs
- EventRoute.cs
- CodeExporter.cs
- CustomValidator.cs
- LambdaCompiler.cs
- SystemIPv6InterfaceProperties.cs
- StringWriter.cs
- ClaimTypes.cs
- DesignBindingEditor.cs
- ExceptionRoutedEventArgs.cs
- UrlMappingCollection.cs
- DefaultValueMapping.cs
- ExtensionQuery.cs
- NullReferenceException.cs
- CompositeCollectionView.cs
- RowToParametersTransformer.cs
- OracleParameterCollection.cs
- ErrorProvider.cs
- FixedFlowMap.cs
- FrameworkPropertyMetadata.cs
- CodeLabeledStatement.cs
- HashHelpers.cs
- Oid.cs
- MemoryPressure.cs
- AmbientLight.cs
- InputReport.cs
- RunClient.cs
- DataTableReader.cs
- EmptyCollection.cs
- AppLevelCompilationSectionCache.cs
- ApplicationContext.cs
- SqlTransaction.cs
- ContentControl.cs
- Operand.cs
- MustUnderstandBehavior.cs
- ConfigUtil.cs
- ConstrainedDataObject.cs
- HttpWebRequestElement.cs
- XPathDocumentIterator.cs
- ObjectViewEntityCollectionData.cs
- XmlIlTypeHelper.cs
- XmlNotation.cs
- DesignConnectionCollection.cs
- AuthenticationModulesSection.cs
- OutputScope.cs
- AllMembershipCondition.cs
- MethodCallTranslator.cs
- BaseTemplateBuildProvider.cs
- IPHostEntry.cs
- Maps.cs
- ClientTargetSection.cs
- RepeaterItemEventArgs.cs