Schnellstart: Erkennen von Zeigergeräten
Language: HTML | XAML

Schnellstart: Erkennen von Zeigergeräten (XAML)

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation]

In dieser Schnellstartanleitung wird erläutert, wie Sie die an das System eines Benutzers angeschlossenen Eingabegeräte bestimmen. Außerdem zeigen wir, wie die Funktionen und Attribute der einzelnen Geräte abgerufen werden, die festlegen, wie Benutzer mit Ihrer App interagieren können.

Roadmap: Wie hängt dieses Thema mit anderen zusammen? Siehe:

Ziel: Erfahren Sie, wie Sie angeschlossene Eingabegeräte und ihre Funktionen erkennen.

Voraussetzungen

Es wird vorausgesetzt, dass Sie eine einfache Windows-Runtime-App mit C++, C# oder Visual Basic erstellen können.

Für dieses Lernprogramm ist Folgendes erforderlich:

Anweisungen

1. Abrufen von Mauseigenschaften

Der Windows.Devices.Input-Namespace enthält die MouseCapabilities-Klasse, mit der Sie die von einer oder mehreren Mäusen bereitgestellten Eigenschaften abrufen können. Erstellen Sie einfach ein neues MouseCapabilities-Objekt, und rufen Sie die benötigten Eigenschaften ab.

Hinweis  Die von den hier beschriebenen Eigenschaften zurückgegebenen Werte basieren auf allen angeschlossenen Mäusen: Boolesche Eigenschaften geben Werte ungleich 0 zurück, wenn mindestens eine Maus eine bestimmte Funktion unterstützt, während numerische Eigenschaften den größten Wert einer der Mäuse zurückgeben.
 

Der folgende Code verwendet eine Reihe von TextBlock-Elementen, um die einzelnen Mauseigenschaften und -werte anzuzeigen.


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


2. Abrufen von Tastatureigenschaften

Der Windows.Devices.Input-Namespace enthält die KeyboardCapabilities-Klasse, mit der Sie ermitteln können, ob eine Tastatur angeschlossen ist. Erstellen Sie einfach ein neues KeyboardCapabilities-Objekt, und rufen Sie die KeyboardPresent-Eigenschaft ab.

Der folgende Code verwendet ein TextBlock-Element, um die Tastatureigenschaft und ihren Wert anzuzeigen.


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


3. Abrufen von Berührungseigenschaften

Der Windows.Devices.Input-Namespace enthält die TouchCapabilities-Klasse, mit der Sie ermitteln können, ob Berührungs-Digitalisierungsgeräte angeschlossen sind. Erstellen Sie einfach ein neues TouchCapabilities-Objekt, und rufen Sie die benötigten Eigenschaften ab.

Hinweis  Die von den hier beschriebenen Eigenschaften zurückgegebenen Werte basieren auf allen angeschlossenen Berührungs-Digitalisierungsgeräten: Boolesche Eigenschaften geben Werte ungleich 0 zurück, wenn mindestens eine Maus eine bestimmte Funktion unterstützt, während numerische Eigenschaften den größten Wert einer der Mäuse zurückgeben.
 

Der folgende Code verwendet eine Reihe von TextBlock-Elementen, um die Eigenschaften und Werte der einzelnen Berührungs-Digitalisierungsgeräte anzuzeigen.


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


4. Abrufen von Zeigereigenschaften

Der Windows.Devices.Input-Namespace enthält die PointerDevice-Klasse, mit der Sie abrufen können, ob Geräte angeschlossen sind, die Zeigereingaben unterstützen (Berührung, Stift oder Maus). Erstellen Sie einfach ein neues PointerDevice-Objekt, und rufen Sie die benötigten Eigenschaften ab.

Hinweis  Die von den hier beschriebenen Eigenschaften zurückgegebenen Werte basieren auf allen angeschlossenen Zeigegeräten: Boolesche Eigenschaften geben Werte ungleich 0 zurück, wenn mindestens eine Maus eine bestimmte Funktion unterstützt, während numerische Eigenschaften den größten Wert einer der Mäuse zurückgeben.
 

Der folgende Code zeigt in einer Tabelle die Eigenschaften und Werte der einzelnen Zeigergeräte an.


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


Das vollständige Beispiel finden Sie unter Eingabe: Beispiel für Gerätefunktionen.

Zusammenfassung

Sie haben in dieser Schnellstartanleitung eine Reihe von Grundfunktionen erstellt, mit denen Sie Eingabegeräte und ihre Eigenschaften ermitteln können, die für Ihre App zur Verfügung stehen.

Verwandte Themen

Roadmap für Windows-Runtime-Apps mit C# oder Visual Basic
Reaktion auf Mauseingabe
Reaktion auf Tastatureingabe
Referenz
Windows.Devices.Input
Beispiele
Eingabe: Beispiel für Gerätefunktionen

 

 

Anzeigen:
© 2017 Microsoft