Mengidentifikasi perangkat input

Identifikasi perangkat input yang terhubung ke perangkat aplikasi Windows dan identifikasi kemampuan dan atributnya.

API penting: Windows.Devices.Input, Windows.UI.Input, Windows.UI.Xaml.Input

Mengambil properti mouse

Namespace Windows.Devices.Input berisi kelas MouseCapabilities yang digunakan untuk mengambil properti yang diekspos oleh satu atau beberapa tikus yang terhubung. Cukup buat objek MouseCapabilities baru dan dapatkan properti yang Anda minati.

Catatan Nilai yang dikembalikan oleh properti yang dibahas di sini didasarkan pada semua tikus yang terdeteksi: Properti Boolean mengembalikan bukan nol jika setidaknya satu mouse mendukung kemampuan tertentu, dan properti numerik mengembalikan nilai maksimum yang diekspos oleh satu mouse.

 

Kode berikut menggunakan serangkaian elemen TextBlock untuk menampilkan properti dan nilai mouse individual.

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();
}

Mengambil properti keyboard

Namespace Windows.Devices.Input berisi kelas KeyboardCapabilities yang digunakan untuk mengambil apakah keyboard tersambung. Cukup buat objek KeyboardCapabilities baru dan dapatkan properti KeyboardPresent .

Kode berikut menggunakan elemen TextBlock untuk menampilkan properti dan nilai keyboard.

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

Mengambil properti sentuhan

Namespace Windows.Devices.Input berisi kelas TouchCapabilities yang digunakan untuk mengambil apakah ada digitizer sentuh yang tersambung. Cukup buat objek TouchCapabilities baru dan dapatkan properti yang Anda minati.

Catatan Nilai yang dikembalikan oleh properti yang dibahas di sini didasarkan pada semua digitizer sentuh yang terdeteksi: Properti Boolean mengembalikan bukan nol jika setidaknya satu digitizer mendukung kemampuan tertentu, dan properti numerik mengembalikan nilai maksimum yang diekspos oleh satu digitizer.

 

Kode berikut menggunakan serangkaian elemen TextBlock untuk menampilkan properti dan nilai sentuh.

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

Mengambil properti penunjuk

Namespace layanan Windows.Devices.Input berisi kelas PointerDevice yang digunakan untuk mengambil apakah perangkat yang terdeteksi mendukung input pointer (sentuhan, touchpad, mouse, atau pena). Cukup buat objek PointerDevice baru dan dapatkan properti yang Anda minati.

Catatan Nilai yang dikembalikan oleh properti yang dibahas di sini didasarkan pada semua perangkat penunjuk yang terdeteksi: Properti Boolean mengembalikan bukan nol jika setidaknya satu perangkat mendukung kemampuan tertentu, dan properti numerik mengembalikan nilai maksimum yang diekspos oleh satu perangkat penunjuk.

Kode berikut menggunakan tabel untuk menampilkan properti dan nilai untuk setiap perangkat penunjuk.

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;
    }

Sampel

Sampel arsip