Pointer Класс

Определение

Предоставляет основные свойства для указателя ввода, связанного с одной мышью, пером или сенсорным контактом.

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

Если аргумент события не предоставляет сведения о указателе, необходимые вашему приложению, вы можете получить доступ к расширенным данным указателя с помощью методов GetCurrentPoint и GetIntermediatePointspointerRoutedEventArgs. Мы рекомендуем использовать эти методы, так как можно указать контекст данных указателя.

Свойства

IsInContact

Возвращает значение, определяющее, было ли устройство указателя в контакте с датчиком или дигитайзером во время сообщения о событии.

IsInRange

Возвращает значение, указывающее, находится ли указатель в диапазоне обнаружения датчика или дигитайзера.

PointerDeviceType

Возвращает тип PointerDeviceType для устройства указателя.

PointerId

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

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

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