Identificare i dispositivi di inputIdentify input devices

Identificare i dispositivi di input connessi a un dispositivo app Windows e identificarne le funzionalità e gli attributi.Identify the input devices connected to a Windows app device and identify their capabilities and attributes.

API importanti : Windows. Devices. input, Windows. UI. input, Windows. UI. XAML. inputImportant APIs : Windows.Devices.Input, Windows.UI.Input, Windows.UI.Xaml.Input

Recuperare le proprietà del mouseRetrieve mouse properties

Lo spazio dei nomi Windows. Devices. input contiene la classe MouseCapabilities utilizzata per recuperare le proprietà esposte da uno o più topi connessi.The Windows.Devices.Input namespace contains the MouseCapabilities class used to retrieve the properties exposed by one or more connected mice. Crea un nuovo oggetto MouseCapabilities e recupera le proprietà che ti interessano.Just create a new MouseCapabilities object and get the properties you're interested in.

Nota I valori restituiti dalle proprietà illustrate in questo articolo sono basati su tutti i topi rilevati: le proprietà booleane restituiscono un valore diverso da zero se almeno un mouse supporta una funzionalità specifica, mentre le proprietà numeriche restituiscono il valore massimo esposto da un mouse.Note The values returned by the properties discussed here are based on all detected mice: Boolean properties return non-zero if at least one mouse supports a specific capability, and numeric properties return the maximum value exposed by any one mouse.

Nel codice seguente viene utilizzata una serie di elementi TextBlock per visualizzare le singole proprietà e i valori del mouse.The following code uses a series of TextBlock elements to display the individual mouse properties and values.

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

Recuperare le proprietà della tastieraRetrieve keyboard properties

Lo spazio dei nomi Windows.Devices.Input contiene la classe KeyboardCapabilities usata per recuperare le eventuali tastiere connesse.The Windows.Devices.Input namespace contains the KeyboardCapabilities class used to retrieve whether a keyboard is connected. Crea un nuovo oggetto KeyboardCapabilities e recupera la proprietà KeyboardPresent.Just create a new KeyboardCapabilities object and get the KeyboardPresent property.

Nel codice seguente viene utilizzato un elemento TextBlock per visualizzare la proprietà e il valore della tastiera.The following code uses a TextBlock element to display the keyboard property and value.

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

Recuperare le proprietà del toccoRetrieve touch properties

Lo spazio dei nomi Windows. Devices. input contiene la classe TouchCapabilities usata per recuperare se sono connessi i digitalizzatori touch.The Windows.Devices.Input namespace contains the TouchCapabilities class used to retrieve whether any touch digitizers are connected. Crea un nuovo oggetto TouchCapabilities e recupera le proprietà che ti interessano.Just create a new TouchCapabilities object and get the properties you're interested in.

Nota I valori restituiti dalle proprietà illustrate in questo articolo sono basati su tutti i digitalizzatori touch rilevati: le proprietà booleane restituiscono un valore diverso da zero se almeno un digitalizzatore supporta una funzionalità specifica e le proprietà numeriche restituiscono il valore massimo esposto da un digitalizzatore.Note The values returned by the properties discussed here are based on all detected touch digitizers: Boolean properties return non-zero if at least one digitizer supports a specific capability, and numeric properties return the maximum value exposed by any one digitizer.

Il codice seguente usa una serie di elementi TextBlock per visualizzare le proprietà e i valori del tocco.The following code uses a series of TextBlock elements to display the touch properties and values.

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

Recuperare le proprietà del puntatoreRetrieve pointer properties

Lo spazio dei nomi Windows. Devices. input contiene la classe PointerDevice usata per recuperare i dispositivi rilevati che supportano l'input del puntatore (tocco, touchpad, mouse o penna).The Windows.Devices.Input namespace contains the PointerDevice class used to retrieve whether any detected devices support pointer input (touch, touchpad, mouse, or pen). Crea un nuovo oggetto PointerDevice e recupera le proprietà che ti interessano.Just create a new PointerDevice object and get the properties you're interested in.

Nota I valori restituiti dalle proprietà illustrate in questo articolo sono basati su tutti i dispositivi puntatore rilevati: le proprietà booleane restituiscono un valore diverso da zero se almeno un dispositivo supporta una funzionalità specifica e le proprietà numeriche restituiscono il valore massimo esposto da un dispositivo puntatore.Note The values returned by the properties discussed here are based on all detected pointer devices: Boolean properties return non-zero if at least one device supports a specific capability, and numeric properties return the maximum value exposed by any one pointer device.

Il codice seguente usa una tabella per visualizzare le proprietà e i valori per ogni dispositivo di puntamento.The following code uses a table to display the properties and values for each pointer device.

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

EsempiSamples

Esempi di archivioArchive samples