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 / StylusOverProperty.cs / 1 / StylusOverProperty.cs
using System; using System.Windows.Input; using MS.Internal.KnownBoxes; namespace System.Windows { ///////////////////////////////////////////////////////////////////////// internal class StylusOverProperty : ReverseInheritProperty { ///////////////////////////////////////////////////////////////////// internal StylusOverProperty() : base( UIElement.IsStylusOverPropertyKey, CoreFlags.IsStylusOverCache, CoreFlags.IsStylusOverChanged) { } ///////////////////////////////////////////////////////////////////// internal override void FireNotifications(UIElement uie, ContentElement ce, UIElement3D uie3D, bool oldValue) { // This is all very sketchy... // // Tablet can support multiple stylus devices concurrently. They can each // be over a different element. They all update the IsStylusOver property, // which calls into here, but ends up using the "current" stylus device, // instead of each using their own device. Worse, all of these will end up // writing to the same bits in the UIElement. They are going to step all over // each other. if(Stylus.CurrentStylusDevice == null) { return; } StylusEventArgs stylusEventArgs = new StylusEventArgs(Stylus.CurrentStylusDevice, Environment.TickCount); stylusEventArgs.RoutedEvent = oldValue ? Stylus.StylusLeaveEvent : Stylus.StylusEnterEvent; if (uie != null) { uie.RaiseEvent(stylusEventArgs); } else if (ce != null) { ce.RaiseEvent(stylusEventArgs); } else if (uie3D != null) { uie3D.RaiseEvent(stylusEventArgs); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.Windows.Input; using MS.Internal.KnownBoxes; namespace System.Windows { ///////////////////////////////////////////////////////////////////////// internal class StylusOverProperty : ReverseInheritProperty { ///////////////////////////////////////////////////////////////////// internal StylusOverProperty() : base( UIElement.IsStylusOverPropertyKey, CoreFlags.IsStylusOverCache, CoreFlags.IsStylusOverChanged) { } ///////////////////////////////////////////////////////////////////// internal override void FireNotifications(UIElement uie, ContentElement ce, UIElement3D uie3D, bool oldValue) { // This is all very sketchy... // // Tablet can support multiple stylus devices concurrently. They can each // be over a different element. They all update the IsStylusOver property, // which calls into here, but ends up using the "current" stylus device, // instead of each using their own device. Worse, all of these will end up // writing to the same bits in the UIElement. They are going to step all over // each other. if(Stylus.CurrentStylusDevice == null) { return; } StylusEventArgs stylusEventArgs = new StylusEventArgs(Stylus.CurrentStylusDevice, Environment.TickCount); stylusEventArgs.RoutedEvent = oldValue ? Stylus.StylusLeaveEvent : Stylus.StylusEnterEvent; if (uie != null) { uie.RaiseEvent(stylusEventArgs); } else if (ce != null) { ce.RaiseEvent(stylusEventArgs); } else if (uie3D != null) { uie3D.RaiseEvent(stylusEventArgs); } } } } // 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
- X500Name.cs
- PointCollection.cs
- AppDomainShutdownMonitor.cs
- GradientBrush.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- Visual3DCollection.cs
- StickyNote.cs
- GradientBrush.cs
- MultiTargetingUtil.cs
- WindowsFormsDesignerOptionService.cs
- DataGridViewColumn.cs
- RetrieveVirtualItemEventArgs.cs
- Preprocessor.cs
- FilteredReadOnlyMetadataCollection.cs
- BehaviorService.cs
- LayoutEvent.cs
- RijndaelManagedTransform.cs
- DiscreteKeyFrames.cs
- DescendantBaseQuery.cs
- GestureRecognitionResult.cs
- _ListenerRequestStream.cs
- SimpleModelProvider.cs
- DigitalSignature.cs
- DrawingBrush.cs
- TextTreeText.cs
- StorageBasedPackageProperties.cs
- LazyTextWriterCreator.cs
- DocumentReference.cs
- SqlDataSourceEnumerator.cs
- WebPartDescription.cs
- AuthenticationSection.cs
- SessionStateContainer.cs
- ClientTargetCollection.cs
- ClientProxyGenerator.cs
- ServiceMemoryGates.cs
- ExpressionLexer.cs
- SafeTokenHandle.cs
- ActivityMarkupSerializer.cs
- DataView.cs
- LinqDataSourceView.cs
- GlobalizationAssembly.cs
- VideoDrawing.cs
- CommandField.cs
- Positioning.cs
- SQLConvert.cs
- ListDictionary.cs
- AQNBuilder.cs
- TextTreeNode.cs
- ContextMenuStrip.cs
- storagemappingitemcollection.viewdictionary.cs
- ExpressionConverter.cs
- SQLMembershipProvider.cs
- BitmapEffectGeneralTransform.cs
- FakeModelItemImpl.cs
- ContextProperty.cs
- TreeViewImageKeyConverter.cs
- ConsumerConnectionPoint.cs
- ColorConverter.cs
- ComponentCommands.cs
- ExecutionScope.cs
- XmlElementAttributes.cs
- PrintDialog.cs
- CommentEmitter.cs
- AliasGenerator.cs
- Semaphore.cs
- HtmlListAdapter.cs
- TimeSpanValidatorAttribute.cs
- DBBindings.cs
- GreenMethods.cs
- RepeatBehavior.cs
- SerializationInfoEnumerator.cs
- ServiceInfoCollection.cs
- InitializationEventAttribute.cs
- RandomDelayQueuedSendsAsyncResult.cs
- TypeRefElement.cs
- Qualifier.cs
- DataGridCaption.cs
- ByteStack.cs
- ActivityStateRecord.cs
- TextParaLineResult.cs
- TextDecoration.cs
- HScrollBar.cs
- Image.cs
- DockPattern.cs
- XmlSchemaAnnotation.cs
- TextRangeEditTables.cs
- DataStorage.cs
- MimeTypeMapper.cs
- AutomationPropertyInfo.cs
- MiniMapControl.xaml.cs
- FamilyMap.cs
- SearchForVirtualItemEventArgs.cs
- RulePatternOps.cs
- ISSmlParser.cs
- VariableBinder.cs
- PeerCustomResolverBindingElement.cs
- RootCodeDomSerializer.cs
- ParameterBuilder.cs
- ChildChangedEventArgs.cs
- WebPartZone.cs