Поделиться через


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
Наследование
Object Platform::Object IInspectable 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

Возвращает созданный системой идентификатор для этой ссылки указателя.

Применяется к

См. также раздел