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
- GeneralTransform3DGroup.cs
- DataRowCollection.cs
- HttpCapabilitiesBase.cs
- _AutoWebProxyScriptEngine.cs
- ReadOnlyDictionary.cs
- SecurityChannelFaultConverter.cs
- EventMap.cs
- Int16.cs
- SQLStringStorage.cs
- NullableIntSumAggregationOperator.cs
- WmlListAdapter.cs
- Facet.cs
- DbProviderServices.cs
- SamlAuthenticationStatement.cs
- TextBoxDesigner.cs
- FrameworkContentElement.cs
- IntSecurity.cs
- TraceContext.cs
- ModelVisual3D.cs
- ClientClassGenerator.cs
- EarlyBoundInfo.cs
- RowVisual.cs
- EventData.cs
- CachedTypeface.cs
- RecordsAffectedEventArgs.cs
- Solver.cs
- WebRequestModuleElement.cs
- DataMemberConverter.cs
- TcpConnectionPoolSettings.cs
- WindowInteractionStateTracker.cs
- HostingPreferredMapPath.cs
- RegexCompilationInfo.cs
- MetadataPropertyAttribute.cs
- TextElementAutomationPeer.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- SqlXml.cs
- WbmpConverter.cs
- JsonObjectDataContract.cs
- ListViewGroupItemCollection.cs
- CodeTypeParameter.cs
- ExpressionList.cs
- EventLogPermissionEntryCollection.cs
- Line.cs
- Quaternion.cs
- ResourceReferenceExpression.cs
- DBProviderConfigurationHandler.cs
- SystemInfo.cs
- SizeAnimationClockResource.cs
- StaticTextPointer.cs
- sqlpipe.cs
- StorageTypeMapping.cs
- StringDictionaryEditor.cs
- DictionaryChange.cs
- ListViewDeletedEventArgs.cs
- ApplicationInfo.cs
- _HelperAsyncResults.cs
- InvalidOperationException.cs
- HttpListenerRequest.cs
- ResourcePart.cs
- XmlSchemaAnyAttribute.cs
- ConfigXmlText.cs
- MarkupExtensionSerializer.cs
- GroupBox.cs
- ContentPosition.cs
- sqlser.cs
- MinimizableAttributeTypeConverter.cs
- HtmlWindow.cs
- TextServicesCompartmentContext.cs
- CacheMemory.cs
- JavascriptCallbackMessageInspector.cs
- OleDbException.cs
- GraphicsPath.cs
- ActivationArguments.cs
- XmlEnumAttribute.cs
- WCFModelStrings.Designer.cs
- TextMessageEncodingBindingElement.cs
- TransformerInfoCollection.cs
- SchemaElementDecl.cs
- DropSource.cs
- OutputCacheProviderCollection.cs
- __ComObject.cs
- AssemblyAttributes.cs
- ResourceExpressionBuilder.cs
- WebPartMinimizeVerb.cs
- XamlToRtfParser.cs
- ChannelEndpointElementCollection.cs
- ExtendedPropertyCollection.cs
- HttpResponseHeader.cs
- StreamGeometry.cs
- WsatAdminException.cs
- M3DUtil.cs
- MTConfigUtil.cs
- MembershipSection.cs
- GrammarBuilderDictation.cs
- CellLabel.cs
- DataListItemEventArgs.cs
- StateDesigner.TransitionInfo.cs
- NTAccount.cs
- RestHandler.cs
- Internal.cs