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


PointerPointProperties Класс

Определение

Предоставляет расширенные свойства для объекта PointerPoint .

В большинстве случаев мы рекомендуем получать сведения о указателе с помощью обработчиков событий указателей выбранной платформы языка Windows 8 (приложение Windows на javaScript, приложение UWP с помощью C++, C# или Visual Basic или приложение UWP с помощью DirectX с C++).

Если аргумент события не предоставляет сведения о указателе, необходимые вашему приложению, вы можете получить доступ к расширенным данным указателя из аргумента события с помощью методов 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
Наследование
Object Platform::Object IInspectable 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).

Ядро архитектуры интерактивных устройств ввода Майкрософт основано на стандартном определении класса устройств универсальной последовательной шины (USB) для устройства HID, которое определяется На форуме разработчиков, Inc.

Стандарт HID (Универсальная последовательная шина(USB) определяет конфигурацию и протоколы связи для hid-устройств, таких как клавиатуры, мыши, джойстики и устройства виртуальной реальности, которые люди используют для ввода данных непосредственно в компьютер. (Подробные сведения о стандарте USB HID см. на веб-сайте Форума разработчиков USB .)

Хотя ядро архитектуры ввода Windows основано на стандарте HID(HID) универсальной последовательной шины (USB), эта архитектура не ограничивается устройствами универсальной последовательной шины (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.

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

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