PointerPoint 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为与单个鼠标、笔/触笔或触摸接触关联的输入指针提供基本属性。
public ref class PointerPoint sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.None)]
class PointerPoint final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.None)]
public sealed class PointerPoint
Public NotInheritable Class PointerPoint
- 继承
- 属性
Windows 要求
设备系列 |
Windows 10 (在 10.0.10240.0 中引入)
|
API contract |
Windows.Foundation.UniversalApiContract (在 v1.0 中引入)
|
示例
在以下示例中,我们使用 PointerPoint 对象查询各种指针属性。
String queryPointer(PointerPoint ptrPt)
{
String details = "";
switch (ptrPt.PointerDevice.PointerDeviceType)
{
case Windows.Devices.Input.PointerDeviceType.Mouse:
details += "\nPointer type: mouse";
break;
case Windows.Devices.Input.PointerDeviceType.Pen:
details += "\nPointer type: pen";
if (ptrPt.IsInContact)
{
details += "\nPressure: " + ptrPt.Properties.Pressure;
details += "\nrotation: " + ptrPt.Properties.Orientation;
details += "\nTilt X: " + ptrPt.Properties.XTilt;
details += "\nTilt Y: " + ptrPt.Properties.YTilt;
details += "\nBarrel button pressed: " + ptrPt.Properties.IsBarrelButtonPressed;
}
break;
case Windows.Devices.Input.PointerDeviceType.Touch:
details += "\nPointer type: touch";
details += "\nrotation: " + ptrPt.Properties.Orientation;
details += "\nTilt X: " + ptrPt.Properties.XTilt;
details += "\nTilt Y: " + ptrPt.Properties.YTilt;
break;
default:
details += "\nPointer type: n/a";
break;
}
GeneralTransform gt = Target.TransformToVisual(page);
Point screenPoint;
screenPoint = gt.TransformPoint(new Point(ptrPt.Position.X, ptrPt.Position.Y));
details += "\nPointer Id: " + ptrPt.PointerId.ToString() +
"\nPointer location (parent): " + ptrPt.Position.X + ", " + ptrPt.Position.Y +
"\nPointer location (screen): " + screenPoint.X + ", " + screenPoint.Y;
return details;
}
String queryPointer(PointerPoint ptrPt)
{
String details = "";
switch (ptrPt.PointerDevice.PointerDeviceType)
{
case Windows.Devices.Input.PointerDeviceType.Mouse:
details += "\nPointer type: mouse";
break;
case Windows.Devices.Input.PointerDeviceType.Pen:
details += "\nPointer type: pen";
if (ptrPt.IsInContact)
{
details += "\nPressure: " + ptrPt.Properties.Pressure;
details += "\nrotation: " + ptrPt.Properties.Orientation;
details += "\nTilt X: " + ptrPt.Properties.XTilt;
details += "\nTilt Y: " + ptrPt.Properties.YTilt;
details += "\nBarrel button pressed: " + ptrPt.Properties.IsBarrelButtonPressed;
}
break;
case Windows.Devices.Input.PointerDeviceType.Touch:
details += "\nPointer type: touch";
details += "\nrotation: " + ptrPt.Properties.Orientation;
details += "\nTilt X: " + ptrPt.Properties.XTilt;
details += "\nTilt Y: " + ptrPt.Properties.YTilt;
break;
default:
details += "\nPointer type: n/a";
break;
}
GeneralTransform gt = Target.TransformToVisual(page);
Point screenPoint;
screenPoint = gt.TransformPoint(new Point(ptrPt.Position.X, ptrPt.Position.Y));
details += "\nPointer Id: " + ptrPt.PointerId.ToString() +
"\nPointer location (parent): " + ptrPt.Position.X + ", " + ptrPt.Position.Y +
"\nPointer location (screen): " + screenPoint.X + ", " + screenPoint.Y;
return details;
}
注解
PointerPoint 类实现 IPointerPoint。
有关可通过属性访问的扩展属性,请参阅 PointerPointProperties。
在大多数情况下,我们建议通过所选语言框架中指针事件处理程序的事件参数获取指针信息。
如果事件参数未在本质上公开应用所需的指针详细信息,则可以通过 PointerRoutedEventArgs 的 GetCurrentPoint 和 GetIntermediatePoints 方法访问扩展指针数据。 使用这些方法可指定指针数据的上下文。
静态 PointerPoint 方法 GetCurrentPoint 和 GetIntermediatePoints 始终使用应用上下文。
注意
此类不敏捷,这意味着需要考虑其线程模型和封送处理行为。 有关详细信息,请参阅线程和封送处理 (C++/CX) 和使用多线程环境中的Windows 运行时对象 (.NET) 。
属性
FrameId |
获取输入帧的 ID。 |
IsInContact |
获取一个值,该值指示输入设备 (触摸、笔/触笔) 触摸数字化器表面,还是按下鼠标按钮。 |
PointerDevice |
获取有关与输入指针关联的设备的信息。 |
PointerId |
获取输入指针的唯一标识符。 |
Position |
获取指针输入在客户端坐标中的位置。 |
Properties |
获取有关输入指针的扩展信息。 |
RawPosition |
获取输入设备报告的输入指针的客户端坐标。 |
Timestamp |
获取输入发生的时间。 |
方法
GetCurrentPoint(UInt32) |
检索指定指针的位置和状态信息。 在大多数情况下,我们建议你通过所选语言框架中的指针事件处理程序的事件参数获取指针信息, (使用 JavaScript 的 Windows 应用、使用 C++、C# 或 Visual Basic 的 UWP 应用,或使用 DirectX 和 C++) 的 UWP 应用。 如果事件参数未在本质上公开应用所需的指针详细信息,则可以通过 PointerRoutedEventArgs 的 GetCurrentPoint 和 GetIntermediatePoints 方法访问扩展指针数据。 使用这些方法可指定指针数据的上下文。 静态 PointerPoint 方法 GetCurrentPoint 和 GetIntermediatePoints 始终使用应用上下文。 |
GetCurrentPoint(UInt32, IPointerPointTransform) |
检索指定指针的转换后的信息。 在大多数情况下,我们建议你通过所选语言框架中的指针事件处理程序的事件参数获取指针信息, (使用 JavaScript 的 Windows 应用、使用 C++、C# 或 Visual Basic 的 UWP 应用,或使用 DirectX 和 C++) 的 UWP 应用。 如果事件参数未在本质上公开应用所需的指针详细信息,则可以通过 PointerRoutedEventArgs 的 GetCurrentPoint 和 GetIntermediatePoints 方法访问扩展指针数据。 使用这些方法可指定指针数据的上下文。 静态 PointerPoint 方法 GetCurrentPoint 和 GetIntermediatePoints 始终使用应用上下文。 |
GetIntermediatePoints(UInt32) |
检索指定指针的位置和状态信息,从最后一个指针事件一直检索并包括当前指针事件。 在大多数情况下,我们建议你通过所选语言框架中的指针事件处理程序的事件参数获取指针信息, (使用 JavaScript 的 Windows 应用、使用 C++、C# 或 Visual Basic 的 UWP 应用,或使用 DirectX 和 C++) 的 UWP 应用。 如果事件参数未在本质上公开应用所需的指针详细信息,则可以通过 PointerRoutedEventArgs 的 GetCurrentPoint 和 GetIntermediatePoints 方法访问扩展指针数据。 使用这些方法可指定指针数据的上下文。 静态 PointerPoint 方法 GetCurrentPoint 和 GetIntermediatePoints 始终使用应用上下文。 |
GetIntermediatePoints(UInt32, IPointerPointTransform) |
检索指定指针的转换位置和状态信息,从最后一个指针事件一直检索并包括当前指针事件。 在大多数情况下,我们建议你通过所选语言框架中的指针事件处理程序的事件参数获取指针信息, (使用 JavaScript 的 Windows 应用、使用 C++、C# 或 Visual Basic 的 UWP 应用,或使用 DirectX 和 C++) 的 UWP 应用。 如果事件参数未在本质上公开应用所需的指针详细信息,则可以通过 PointerRoutedEventArgs 的 GetCurrentPoint 和 GetIntermediatePoints 方法访问扩展指针数据。 使用这些方法可指定指针数据的上下文。 静态 PointerPoint 方法 GetCurrentPoint 和 GetIntermediatePoints 始终使用应用上下文。 |
适用于
另请参阅
- Windows.UI.Input
- Windows.Devices.Input
- Windows.UI.Core
- Windows.UI.Input.Inking
- Windows.UI.Xaml.Input
- TypedEventHandler<TSender,TResult>
- 自定义用户交互
- 自定义用户交互的 UX 指南
- 触摸设计指南
- 用户交互模式示例
- 焦点视觉对象示例
- 输入:设备功能示例
- 输入:简化的墨迹示例
- 输入:Windows 8 手势示例
- 输入:XAML 用户输入事件示例
- XAML 滚动、平移以及缩放示例
- DirectX 触控输入示例
- 输入:操作和手势 (C++) 示例
- 输入:触摸点击测试示例
- 输入源标识示例
- 触摸注入示例
- Win32 触摸命中测试示例
- 基本输入示例 (Windows 10)