Aracılığıyla paylaş


Giriş cihazlarını tanımlama

Bir Windows uygulama cihazına bağlı giriş cihazlarını ve bunların özelliklerini ve özniteliklerini belirleyin.

Önemli API'ler: Windows.Devices.Input, Windows.UI.Input, Windows.UI.Xaml.Input

Fare özelliklerini geri getirme

Windows.Devices.Input ad alanı, bir veya daha fazla bağlı fare tarafından kullanıma sunulan özellikleri almak için kullanılan MouseCapabilities sınıfını içerir. Yeni bir MouseCapabilities nesnesi oluşturun ve ilgilendiğiniz özellikleri alın.

Not Burada açıklanan özellikler tarafından döndürülen değerler algılanan tüm fareleri temel alır: En az bir fare belirli bir özelliği destekliyorsa Boole özellikleri sıfır olmayan değer döndürür ve sayısal özellikler herhangi bir fare tarafından gösterilen en yüksek değeri döndürür.

 

Aşağıdaki kod, tek tek fare özelliklerini ve değerlerini görüntülemek için bir dizi TextBlock öğesi kullanır.

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

Klavye özelliklerini alma

Windows.Devices.Input ad alanı, bir klavyenin bağlı olup olmadığını almak için kullanılan KeyboardCapabilities sınıfını içerir. Yeni bir KeyboardCapabilities nesnesi oluşturun ve KeyboardPresent özelliğini alın.

Aşağıdaki kod, klavye özelliğini ve değerini görüntülemek için bir TextBlock öğesi kullanır.

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

Dokunma özelliklerini alma

Windows.Devices.Input ad alanı, herhangi bir dokunmatik basamaklandırıcının bağlı olup olmadığını almak için kullanılan TouchCapabilities sınıfını içerir. Yeni bir TouchCapabilities nesnesi oluşturun ve ilgilendiğiniz özellikleri alın.

Not Burada açıklanan özellikler tarafından döndürülen değerler, algılanan tüm dokunmatik basamaklandırıcıları temel alır: En az bir basamaklandırıcı belirli bir özelliği destekliyorsa Boole özellikleri sıfır olmayan değer döndürür ve sayısal özellikler herhangi bir dijitalleştirici tarafından gösterilen en yüksek değeri döndürür.

 

Aşağıdaki kod, dokunma özelliklerini ve değerlerini görüntülemek için bir dizi TextBlock öğesi kullanır.

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

İşaretçi özelliklerini alma

Windows.Devices.Input ad alanı, algılanan cihazların işaretçi girişini (dokunmatik, dokunmatik yüzey, fare veya kalem) destekleyip desteklemediğini almak için kullanılan PointerDevice sınıfını içerir. Yeni bir PointerDevice nesnesi oluşturun ve ilgilendiğiniz özellikleri alın.

Not Burada açıklanan özellikler tarafından döndürülen değerler algılanan tüm işaretçi cihazlarını temel alır: En az bir cihaz belirli bir özelliği destekliyorsa Boole özellikleri sıfır olmayan değer döndürür ve sayısal özellikler herhangi bir işaretçi cihazı tarafından gösterilen en yüksek değeri döndürür.

Aşağıdaki kod, her işaretçi cihazının özelliklerini ve değerlerini görüntülemek için bir tablo kullanır.

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

Samples

Arşiv örnekleri