Pointer 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供与单个鼠标、笔/触笔或触摸触点关联的输入指针的基本属性。
public ref class Pointer sealed
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class Pointer final
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class Pointer
Public NotInheritable Class Pointer
- 继承
- 属性
示例
下面的代码示例演示了使用 Pointer 类查找应用中每个输入触点的唯一 PointerId ,使用 PointerDeviceType 忽略特定形式的输入 (例如鼠标输入) 并存储指针位置。 有关使用 Pointer 类的其他代码,请参阅 输入示例。
using System.Collections.Generic;
using Windows.Foundation;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Navigation;
namespace PointerExample
{
public sealed partial class BlankPage : Page
{
Dictionary<uint, Point?> _contacts;
const uint SUPPORTEDCONTACTS = 5;
public BlankPage()
{
this.InitializeComponent();
_contacts = new Dictionary<uint, Point?>((int)SUPPORTEDCONTACTS);
this.PointerPressed += BlankPage_PointerPressed;
this.PointerReleased += BlankPage_PointerReleased;
}
private void BlankPage_PointerPressed(object sender,
PointerRoutedEventArgs e)
{
// Ignore mouse inputs.
if (e.Pointer.PointerDeviceType !=
Windows.Devices.Input.PointerDeviceType.Mouse)
{
// Store and touch input contacts.
Windows.UI.Input.PointerPoint pt = e.GetCurrentPoint(this);
_contacts[e.Pointer.PointerId] = pt.Position;
}
e.Handled = true;
}
private void BlankPage_PointerReleased(object sender,
PointerRoutedEventArgs e)
{
// Ignore mouse inputs.
if (e.Pointer.PointerDeviceType !=
Windows.Devices.Input.PointerDeviceType.Mouse)
{
// Remove pointer contacts information.
uint ptrId = e.Pointer.PointerId;
if (_contacts.ContainsKey(ptrId))
{
_contacts[ptrId] = null;
_contacts.Remove(ptrId);
}
}
e.Handled = true;
}
}
}
注解
类 Pointer
用于描述输入设备。 此类标识每个指针事件的输入设备 (,例如触笔、手指或鼠标) 。
在大多数情况下,我们建议通过指针事件处理程序的事件参数获取指针信息 (请参阅 PointerRoutedEventArgs) 。
如果事件参数本质上不公开应用所需的指针详细信息,则可以通过 PointerRoutedEventArgs 的 GetCurrentPoint 和 GetIntermediatePoints 方法访问扩展指针数据。 建议使用这些方法,因为可以指定指针数据的上下文。
属性
IsInContact |
获取一个值,该值确定在报告事件时指针设备是否与传感器或数字化器接触。 |
IsInRange |
获取一个值,该值指示指针设备是否在传感器或数字化器的检测范围内。 |
PointerDeviceType | |
PointerId |
获取此指针引用的系统生成的标识符。 |