PointerPointProperties 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为 PointerPoint 对象提供扩展属性。
在大多数情况下,我们建议通过所选Windows 8语言框架的指针事件处理程序获取指针信息, (使用 JavaScript 的 Windows 应用、使用 C++、C# 或 Visual Basic 的 UWP 应用,或使用 DirectX 和 C++) 的 UWP 应用。
如果事件参数不公开应用所需的指针详细信息,则可以通过 getCurrentPoint 和 getIntermediatePoints 方法或 currentPoint 和 intermediatePoints 属性从事件参数访问扩展指针数据。 建议使用 getCurrentPoint 和 getIntermediatePoints 方法,因为您可以指定指针数据的上下文。
静态 PointerPoint 方法 GetCurrentPoint 和 GetIntermediatePoints 始终使用应用的上下文。
public ref class PointerPointProperties sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.None)]
class PointerPointProperties final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.None)]
public sealed class PointerPointProperties
Public NotInheritable Class PointerPointProperties
- 继承
- 属性
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;
}
注解
PointerPointProperties 类实现 IPointerPointProperties。
注意
此类不是敏捷类,这意味着需要考虑其线程模型和封送处理行为。 有关详细信息,请参阅线程处理和封送处理 (C++/CX) 和在多线程环境中使用 Windows 运行时 对象 (.NET) 。
Microsoft 交互式输入设备体系结构的核心基于通用串行总线 (USB) 人接口设备的标准设备类定义 (HID) ,该定义由 实现者论坛公司定义。
通用串行总线 (USB) 人机接口设备 (HID) 标准定义了人类用于将数据直接输入计算机的人机接口设备 (HID) 的配置和通信协议,例如键盘、鼠标设备、游戏杆和虚拟现实设备。 (有关 USB HID 标准的详细信息,请参阅 USB 实现者论坛 网站。)
尽管 Windows 输入体系结构的核心基于通用串行总线 (USB) 人机接口设备 (HID) 标准,但该体系结构并不局限于通用串行总线 (USB) 设备。 输入体系结构还支持串行端口设备、i8042 端口设备和专有输入设备。
属性
ContactRect |
获取通常从触摸输入) (接触区域的边框。 |
ContactRectRaw |
通常从触摸输入) 获取原始输入 (的边框。 |
IsBarrelButtonPressed |
获取一个值,该值指示是否按下笔/触笔设备的筒形按钮。 |
IsCanceled |
获取一个值,该值指示指针设备是否取消了输入。 |
IsEraser |
获取一个值,该值指示输入是否来自笔橡皮擦。 |
IsHorizontalMouseWheel |
获取一个值,该值指示输入是否来自鼠标倾斜滚轮。 |
IsInRange |
获取一个值,该值指示指针设备是否在传感器或数字化器的检测范围内, (指针继续存在) 。 |
IsInverted |
获取一个值,该值指示数字化器笔是否反转。 |
IsLeftButtonPressed |
获取一个值,该值指示指针输入是否由输入设备的主操作模式触发。 |
IsMiddleButtonPressed |
获取一个值,该值指示指针输入是否由输入设备的第三个操作模式触发。 |
IsPrimary |
获取一个值,该值指示在注册多个指针时输入是否来自主指针。 |
IsRightButtonPressed |
获取一个值,该值指示指针输入是否由辅助操作模式触发 (是否受支持) 输入设备。 |
IsXButton1Pressed |
获取一个值,该值指示指针输入是否由 XButton1) 的第一个扩展鼠标按钮 (触发。 |
IsXButton2Pressed |
获取一个值,该值指示指针输入是否由 XButton2) (第二个扩展鼠标按钮触发。 |
MouseWheelDelta |
获取一个值 (设备) 报告的原始值,该值指示上一个指针事件中滚轮按钮输入的变化。 |
Orientation |
获取与数字化器) 表面垂直的 z 轴 (指针设备主轴的逆时针旋转角度。 值为 0.0 度表示设备面向数字化器的顶部。 |
PointerUpdateKind |
获取指针状态更改的类型。 |
Pressure |
获取一个值,该值指示指针设备通常 (笔/触笔) 在数字化器表面上施加的力。 |
TouchConfidence |
获取一个值,该值指示指针设备是否拒绝了触摸接触。 |
Twist |
获取笔设备绕其主轴的顺时针旋转度 (,例如当用户用手指旋转笔) 时。 |
XTilt |
获取 Y-Z 平面与包含 Y 轴的平面与输入设备 (通常为笔/触笔) 的平面之间的平面角度。 |
YTilt |
获取 X-Z 平面与包含 X 轴的平面和输入设备 (通常为笔/触笔) 的轴之间的平面角度。 |
ZDistance |
获取指针与屏幕表面的 z 坐标 (或距离) ,以与设备无关的像素为单位。 |
方法
GetUsageValue(UInt32, UInt32) |
获取原始输入的人机接口设备 (HID) 使用值。 |
HasUsage(UInt32, UInt32) |
获取一个值,该值指示指针设备的输入数据是否包含指定的人机接口设备 (HID) 使用情况信息。 |
适用于
另请参阅
- Windows.UI.Input
- Properties
- 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 触控命中测试示例