Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zidentyfikuj urządzenia wejściowe podłączone do urządzenia aplikacji systemu Windows i zidentyfikuj ich możliwości i atrybuty.
Ważne interfejsy API: Windows.Devices.Input, Windows.UI.Input, Windows.UI.Xaml.Input
Pobieranie właściwości myszy
Przestrzeń nazw Windows.Devices.Input zawiera klasę MouseCapabilities używaną do pobierania właściwości uwidocznionych przez co najmniej jedną połączoną myszę. Wystarczy utworzyć nowy obiekt MouseCapabilities i uzyskać interesujące Cię właściwości.
Nuta Wartości zwracane przez omówione tutaj właściwości są oparte na wszystkich wykrytych myszach: właściwości logiczne zwracają wartość niezerową, jeśli co najmniej jedna mysz obsługuje określoną funkcję, a właściwości liczbowe zwracają maksymalną wartość uwidacznianą przez dowolną mysz.
Poniższy kod używa serii elementów TextBlock do wyświetlania poszczególnych właściwości i wartości myszy.
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();
}
Pobieranie właściwości klawiatury
Przestrzeń nazw Windows.Devices.Input zawiera klasę KeyboardCapabilities używaną do pobierania, czy klawiatura jest połączona. Wystarczy utworzyć nowy obiekt KeyboardCapabilities i uzyskać właściwość KeyboardPresent .
Poniższy kod używa elementu TextBlock do wyświetlania właściwości i wartości klawiatury.
private void GetKeyboardProperties()
{
KeyboardCapabilities keyboardCapabilities = new Windows.Devices.Input.KeyboardCapabilities();
KeyboardPresent.Text = keyboardCapabilities.KeyboardPresent != 0 ? "Yes" : "No";
}
Pobieranie właściwości dotykowych
Przestrzeń nazw Windows.Devices.Input zawiera klasę TouchCapabilities używaną do sprawdzania, czy są podłączone jakiekolwiek cyfrowe urządzenia dotykowe. Wystarczy utworzyć nowy obiekt TouchCapabilities i uzyskać interesujące Cię właściwości.
Uwaga Wartości zwracane przez omówione tutaj właściwości są oparte na wszystkich wykrytych ekranach dotykowych: właściwości logiczne zwracają wartość prawdziwą, jeśli co najmniej jeden digitizer obsługuje określoną funkcję, a właściwości liczbowe zwracają maksymalną wartość udostępnianą przez dowolny digitizer.
Poniższy kod używa serii elementów TextBlock do wyświetlania właściwości i wartości dotyku.
private void GetTouchProperties()
{
TouchCapabilities touchCapabilities = new Windows.Devices.Input.TouchCapabilities();
TouchPresent.Text = touchCapabilities.TouchPresent != 0 ? "Yes" : "No";
Contacts.Text = touchCapabilities.Contacts.ToString();
}
Pobieranie właściwości wskaźnika
Przestrzeń nazw Windows.Devices.Input zawiera klasę PointerDevice używaną do pobierania, czy wykryte urządzenia obsługują wprowadzanie wskaźnika (dotyk, touchpad, mysz lub pióro). Wystarczy utworzyć nowy obiekt PointerDevice i uzyskać interesujące Cię właściwości.
Uwaga Wartości zwracane przez omówione tutaj właściwości są oparte na wszystkich wykrytych urządzeniach wskaźnikowych: właściwości logiczne zwracają wartość niezerową, jeśli co najmniej jedno urządzenie obsługuje określoną funkcję, a właściwości liczbowe zwracają maksymalną wartość uwidocznioną przez dowolne urządzenie wskaźnikowe.
Poniższy kod używa tabeli do wyświetlania właściwości i wartości dla każdego urządzenia wskaźnika.
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;
}
Powiązane artykuły
Samples
- Podstawowy przykład danych wejściowych
- Przykład danych wejściowych o małym opóźnieniu
- Przykład trybu interakcji użytkownika
Próbki archiwalne
Windows developer