입력 디바이스 식별

Windows 앱 장치에 연결 된 입력 장치를 식별 하 고 해당 기능 및 특성을 식별 합니다.

중요 한 api: Windows. 장치. 입력, Windows. U. 입력, Windows. U. Xaml. 입력

마우스 속성 검색

Windows입니다. 장치. 입력 네임 스페이스는 하나 이상의 연결 된 마우스에 의해 노출 되는 속성을 검색 하는 데 사용 되는 MouseCapabilities 클래스를 포함 합니다. 새 MouseCapabilities 개체를 만들고 관심 있는 속성을 가져옵니다.

참고 여기서 설명 하는 속성에 의해 반환 되는 값은 검색 된 모든 마우스를 기반으로 합니다. 하나 이상의 마우스가 특정 기능을 지 원하는 경우 부울 속성은 0이 아닌 값을 반환 하 고 숫자 속성은 한 마우스에서 노출 하는 최대값을 반환 합니다.

다음 코드에서는 일련의 TextBlock 요소를 사용 하 여 개별 마우스 속성 및 값을 표시 합니다.

private void GetMouseProperties()
{
    MouseCapabilities mouseCapabilities = new Windows.Devices.Input.MouseCapabilities();
    MousePresent.Text = mouseCapabilities.MousePresent != 0 ? "Yes" : "No";
    VertWheel.Text = mouseCapabilities.VerticalWheelPresent != 0 ? "Yes" : "No";
    HorzWheel.Text = mouseCapabilities.HorizontalWheelPresent != 0 ? "Yes" : "No";
    SwappedButtons.Text = mouseCapabilities.SwapButtons != 0 ? "Yes" : "No";
    NumButtons.Text = mouseCapabilities.NumberOfButtons.ToString();
}

키보드 속성 검색

Windows입니다. 장치. 입력 네임 스페이스는 키보드의 연결 여부를 검색 하는 데 사용 되는 KeyboardCapabilities 클래스를 포함 합니다. 새 KeyboardCapabilities 개체를 만들고 KeyboardPresent 속성을 가져옵니다.

다음 코드에서는 TextBlock 요소를 사용 하 여 키보드 속성 및 값을 표시 합니다.

private void GetKeyboardProperties()
{
    KeyboardCapabilities keyboardCapabilities = new Windows.Devices.Input.KeyboardCapabilities();
    KeyboardPresent.Text = keyboardCapabilities.KeyboardPresent != 0 ? "Yes" : "No";
}

터치 속성 검색

Windows입니다. 장치. 입력 네임 스페이스는 터치 디지타이저가 연결 되어 있는지 여부를 검색 하는 데 사용 되는 TouchCapabilities 클래스를 포함 합니다. 새 TouchCapabilities 개체를 만들고 관심 있는 속성을 가져옵니다.

참고 여기서 설명 하는 속성에 의해 반환 되는 값은 검색 된 모든 터치 디지타이저를 기반으로 합니다. 하나 이상의 디지타이저가 특정 기능을 지원 하 고 숫자 속성이 단일 디지타이저에서 노출 하는 최대값을 반환 하는 경우 부울 속성은 0이 아닌 값을 반환 합니다.

다음 코드는 일련의 TextBlock 요소를 사용 하 여 터치 속성 및 값을 표시 합니다.

private void GetTouchProperties()
{
    TouchCapabilities touchCapabilities = new Windows.Devices.Input.TouchCapabilities();
    TouchPresent.Text = touchCapabilities.TouchPresent != 0 ? "Yes" : "No";
    Contacts.Text = touchCapabilities.Contacts.ToString();
}

포인터 속성 검색

Windows입니다. 장치. 입력 네임 스페이스는 검색 된 장치에서 포인터 입력 (터치, 터치 패드, 마우스 또는 펜)을 지원 하는지 여부를 검색 하는 데 사용 되는 Pointerdevice 클래스를 포함 합니다. 새 Pointerdevice 개체를 만들고 관심 있는 속성을 가져옵니다.

참고 여기서 설명 하는 속성에 의해 반환 되는 값은 검색 된 모든 포인터 장치를 기반으로 합니다. 하나 이상의 장치에서 특정 기능을 지 원하는 경우 부울 속성은 0이 아닌 값을 반환 하 고, 숫자 속성은 하나의 포인터 장치에서 노출 하는 최대값을 반환 합니다.

다음 코드에서는 테이블을 사용 하 여 각 포인터 장치에 대 한 속성 및 값을 표시 합니다.

private void GetPointerDevices()
{
    IReadOnlyList<PointerDevice> pointerDevices = Windows.Devices.Input.PointerDevice.GetPointerDevices();
    int gridRow = 0;
    int gridColumn = 0;

    for (int i = 0; i < pointerDevices.Count; i++)
    {
        // Pointer device type.
        TextBlock textBlock1 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock1);
        textBlock1.Text = (i + 1).ToString() + " Pointer Device Type:";
        Grid.SetRow(textBlock1, gridRow);
        Grid.SetColumn(textBlock1, gridColumn);

        TextBlock textBlock2 = new TextBlock();
        textBlock2.Text = pointerDevices[i].PointerDeviceType.ToString();
        Grid_PointerProps.Children.Add(textBlock2);
        Grid.SetRow(textBlock2, gridRow++);
        Grid.SetColumn(textBlock2, gridColumn + 1);

        // Is external?
        TextBlock textBlock3 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock3);
        textBlock3.Text = (i + 1).ToString() + " Is External?";
        Grid.SetRow(textBlock3, gridRow);
        Grid.SetColumn(textBlock3, gridColumn);

        TextBlock textBlock4 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock4);
        textBlock4.Text = pointerDevices[i].IsIntegrated.ToString();
        Grid.SetRow(textBlock4, gridRow++);
        Grid.SetColumn(textBlock4, gridColumn + 1);

        // Maximum contacts.
        TextBlock textBlock5 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock5);
        textBlock5.Text = (i + 1).ToString() + " Max Contacts:";
        Grid.SetRow(textBlock5, gridRow);
        Grid.SetColumn(textBlock5, gridColumn);

        TextBlock textBlock6 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock6);
        textBlock6.Text = pointerDevices[i].MaxContacts.ToString();
        Grid.SetRow(textBlock6, gridRow++);
        Grid.SetColumn(textBlock6, gridColumn + 1);

        // Physical device rectangle.
        TextBlock textBlock7 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock7);
        textBlock7.Text = (i + 1).ToString() + " Physical Device Rect:";
        Grid.SetRow(textBlock7, gridRow);
        Grid.SetColumn(textBlock7, gridColumn);

        TextBlock textBlock8 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock8);
        textBlock8.Text = pointerDevices[i].PhysicalDeviceRect.X.ToString() + "," +
            pointerDevices[i].PhysicalDeviceRect.Y.ToString() + "," +
            pointerDevices[i].PhysicalDeviceRect.Width.ToString() + "," +
            pointerDevices[i].PhysicalDeviceRect.Height.ToString();
        Grid.SetRow(textBlock8, gridRow++);
        Grid.SetColumn(textBlock8, gridColumn + 1);

        // Screen rectangle.
        TextBlock textBlock9 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock9);
        textBlock9.Text = (i + 1).ToString() + " Screen Rect:";
        Grid.SetRow(textBlock9, gridRow);
        Grid.SetColumn(textBlock9, gridColumn);

        TextBlock textBlock10 = new TextBlock();
        Grid_PointerProps.Children.Add(textBlock10);
        textBlock10.Text = pointerDevices[i].ScreenRect.X.ToString() + "," +
            pointerDevices[i].ScreenRect.Y.ToString() + "," +
            pointerDevices[i].ScreenRect.Width.ToString() + "," +
            pointerDevices[i].ScreenRect.Height.ToString();
        Grid.SetRow(textBlock10, gridRow++);
        Grid.SetColumn(textBlock10, gridColumn + 1);

        gridColumn += 2;
        gridRow = 0;
    }

샘플

보관 샘플