Pointer Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет основные свойства для указателя ввода, связанного с одной мышью, пером или сенсорным контактом.
public ref class Pointer sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Pointer final
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class Pointer final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class Pointer
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class Pointer
Public NotInheritable Class Pointer
- Наследование
- Атрибуты
Требования к Windows
Семейство устройств |
Windows 10 (появилось в 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (появилось в v1.0)
|
Примеры
В следующем примере кода показано использование класса 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;
}
}
}
Комментарии
В большинстве случаев мы рекомендуем получать сведения о указателе с помощью аргумента события обработчиков событий указателя на выбранной языковой платформе (приложение Windows на javaScript, приложение UWP с помощью C++, C# или Visual Basic или приложение UWP с использованием DirectX с C++).
Если аргумент события не предоставляет сведения о указателе, необходимые вашему приложению, вы можете получить доступ к расширенным данным указателя с помощью методов GetCurrentPoint и GetIntermediatePointspointerRoutedEventArgs. Мы рекомендуем использовать эти методы, так как можно указать контекст данных указателя.
Статические методы PointerPoint, GetCurrentPoint и GetIntermediatePoints, всегда используют контекст приложения. Указатель — это абстрактный класс, который используется для описания устройства ввода. Этот класс определяет устройство ввода (например, перо, палец или мышь) для каждого события указателя.
Свойства
IsInContact |
Возвращает значение, определяющее, было ли устройство указателя в контакте с датчиком или дигитайзером во время сообщения о событии. |
IsInRange |
Возвращает значение, указывающее, находится ли указатель в диапазоне обнаружения датчика или дигитайзера. |
PointerDeviceType |
Возвращает тип PointerDeviceType для устройства указателя. |
PointerId |
Возвращает созданный системой идентификатор для этой ссылки указателя. |