Identifizieren von Eingabegeräten
Identifizieren Sie die Eingabegeräte, die mit einem Windows-App-Gerät verbunden sind, und identifizieren Sie deren Funktionen und Attribute.
Wichtige APIs: Windows.Devices.Input, Windows.UI.Input, Windows.UI.Xaml.Input
Abrufen von Mauseigenschaften
Der Windows.Devices.Input-Namespace enthält die MouseCapabilities-Klasse, mit der Sie die Eigenschaften abrufen können, die von einer oder mehreren angeschlossenen Mäusen bereitgestellt werden. Erstellen Sie einfach ein neues MouseCapabilities-Objekt, und rufen Sie die benötigten Eigenschaften ab.
Hinweis Die von den hier erläuterten Eigenschaften zurückgegebenen Werte basieren auf allen erkannten Mäusen: Boolesche Eigenschaften geben ungleich 0 zurück, wenn mindestens eine Maus eine bestimmte Funktion unterstützt, und numerische Eigenschaften geben den maximal von einer Maus verfügbar gemachten Wert zurück.
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();
}
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";
}
Abrufen von Berührungseigenschaften
Der Windows.Devices.Input-Namespace enthält die TouchCapabilities-Klasse, mit der Sie ermitteln können, ob Touchdigitalisierungsgeräte angeschlossen sind. Erstellen Sie einfach ein neues TouchCapabilities-Objekt, und rufen Sie die benötigten Eigenschaften ab.
Hinweis Die von den hier erläuterten Eigenschaften zurückgegebenen Werte basieren auf allen erkannten Touchdigisierern: Boolesche Eigenschaften geben ungleich 0 zurück, wenn mindestens ein Digitizer eine bestimmte Funktion unterstützt, und numerische Eigenschaften geben den maximalen Wert zurück, der von einem beliebigen Digitizer verfügbar gemacht wird.
Der folgende Code verwendet eine Reihe von TextBlock-Elementen, um die Eigenschaften und Werte der einzelnen Touchdigitalisierer anzuzeigen.
private void GetTouchProperties()
{
TouchCapabilities touchCapabilities = new Windows.Devices.Input.TouchCapabilities();
TouchPresent.Text = touchCapabilities.TouchPresent != 0 ? "Yes" : "No";
Contacts.Text = touchCapabilities.Contacts.ToString();
}
Abrufen von Zeigereigenschaften
Der Windows.Devices.Input-Namespace enthält die PointerDevice-Klasse, mit der Sie abrufen können, ob eines der erkannten Geräte Zeigereingaben (Toucheingabe, Stift oder Maus) unterstützt. Erstellen Sie einfach ein neues PointerDevice-Objekt, und rufen Sie die benötigten Eigenschaften ab.
Hinweis Die von den hier erläuterten Eigenschaften zurückgegebenen Werte basieren auf allen erkannten Zeigergeräten: Boolesche Eigenschaften geben ungleich 0 zurück, wenn mindestens ein Gerät eine bestimmte Funktion unterstützt, und numerische Eigenschaften geben den maximal von einem Zeigergerät verfügbar gemachten Wert zurück.
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;
}
Verwandte Artikel
Beispiele
- Einfaches Eingabebeispiel
- Eingabebeispiel mit geringer Latenz
- Beispiel für den Benutzerinteraktionsmodus
Archivbeispiele
Windows developer
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für