Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- SystemIcons.cs
- ScrollProviderWrapper.cs
- XmlSchemaRedefine.cs
- StatusBar.cs
- CodeTypeMember.cs
- CrossSiteScriptingValidation.cs
- FormatterServicesNoSerializableCheck.cs
- SqlTrackingQuery.cs
- XmlSchemaComplexContentRestriction.cs
- DoubleCollectionValueSerializer.cs
- BinaryReader.cs
- TerminatorSinks.cs
- SqlPersonalizationProvider.cs
- ErrorInfoXmlDocument.cs
- SecurityUtils.cs
- DesignerDataStoredProcedure.cs
- PageAsyncTask.cs
- UserControl.cs
- BaseProcessor.cs
- FrameworkRichTextComposition.cs
- DefaultBindingPropertyAttribute.cs
- ImageList.cs
- SchemaEntity.cs
- IsolatedStorageFileStream.cs
- SingleAnimationUsingKeyFrames.cs
- ConfigXmlReader.cs
- SettingsProperty.cs
- TemplateBamlRecordReader.cs
- CodeRemoveEventStatement.cs
- CodeTypeDeclarationCollection.cs
- CommandConverter.cs
- ModelPropertyCollectionImpl.cs
- DrawingBrush.cs
- securestring.cs
- BinaryObjectReader.cs
- StringSource.cs
- PolyBezierSegment.cs
- SchemaImporter.cs
- HttpCachePolicyWrapper.cs
- SourceElementsCollection.cs
- ListViewGroupItemCollection.cs
- ToolbarAUtomationPeer.cs
- WebPartConnectionsCancelVerb.cs
- ParentQuery.cs
- ContainerUIElement3D.cs
- DataGridViewImageCell.cs
- CollectionsUtil.cs
- SizeAnimationBase.cs
- ResourceDefaultValueAttribute.cs
- Subtree.cs
- EntityWrapperFactory.cs
- OutputCacheModule.cs
- KeyValuePairs.cs
- CompilationUtil.cs
- UTF8Encoding.cs
- HttpResponseInternalWrapper.cs
- Error.cs
- AssemblyAttributesGoHere.cs
- FragmentNavigationEventArgs.cs
- PagedDataSource.cs
- EncryptedType.cs
- VisualSerializer.cs
- UpdateManifestForBrowserApplication.cs
- XmlEntity.cs
- Int16Animation.cs
- WSHttpSecurityElement.cs
- EnvelopedPkcs7.cs
- ScrollBar.cs
- PagePropertiesChangingEventArgs.cs
- GlyphingCache.cs
- PersonalizationAdministration.cs
- ParallelQuery.cs
- FileNameEditor.cs
- ClockController.cs
- Variant.cs
- CurrentChangingEventManager.cs
- securitycriticaldata.cs
- SettingsPropertyWrongTypeException.cs
- CriticalHandle.cs
- ViewStateException.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- DynamicField.cs
- ExceptionHandlers.cs
- SQLRoleProvider.cs
- MenuItem.cs
- KerberosRequestorSecurityToken.cs
- MatrixKeyFrameCollection.cs
- TextMetrics.cs
- ZoneLinkButton.cs
- _LazyAsyncResult.cs
- OleDbMetaDataFactory.cs
- SynchronizedDispatch.cs
- QueueSurrogate.cs
- OperatingSystem.cs
- XPathNodeInfoAtom.cs
- OptionUsage.cs
- HttpErrorTraceRecord.cs
- WebConfigurationHost.cs
- DataSourceBooleanViewSchemaConverter.cs
- ProxyGenerator.cs