Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Определите устройства ввода, подключенные к устройству приложения Windows, и определите их возможности и атрибуты.
Важные API: Windows.Devices.Input, Windows.UI.Input, Windows.UI.Xaml.Input
Получение свойств мыши
Пространство имен Windows.Devices.Input содержит класс MouseCapabilities , используемый для получения свойств, предоставляемых одним или несколькими подключенными мышами. Просто создайте объект MouseCapabilities и получите нужные свойства.
Заметка Значения, возвращаемые здесь свойствами, основаны на всех обнаруженных мышах: логические свойства возвращают ненулевое значение, если хотя бы одна мышь поддерживает определенную возможность, а числовые свойства возвращают максимальное значение, предоставляемое любой мышью.
Следующий код использует ряд элементов TextBlock для отображения отдельных свойств и значений мыши.
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();
}
Получение свойств клавиатуры
Пространство имен Windows.Devices.Input содержит класс KeyboardCapabilities , используемый для получения подключения клавиатуры. Просто создайте объект KeyboardCapabilities и получите свойство KeyboardPresent .
Следующий код использует элемент TextBlock для отображения свойства и значения клавиатуры.
private void GetKeyboardProperties()
{
KeyboardCapabilities keyboardCapabilities = new Windows.Devices.Input.KeyboardCapabilities();
KeyboardPresent.Text = keyboardCapabilities.KeyboardPresent != 0 ? "Yes" : "No";
}
Получение свойств сенсорного ввода
Пространство имен Windows.Devices.Input содержит класс TouchCapabilities , используемый для получения подключения любых сенсорных дигитайзеров. Просто создайте новый объект TouchCapabilities и получите нужные свойства.
Заметка Значения, возвращаемые здесь свойствами, основаны на всех обнаруженных сенсорных дигитайзерах: логические свойства возвращают ненулевое значение, если хотя бы один дигитизатор поддерживает определенную возможность, а числовые свойства возвращают максимальное значение, предоставляемое любым дигитизатором.
Следующий код использует ряд элементов TextBlock для отображения свойств и значений сенсорного ввода.
private void GetTouchProperties()
{
TouchCapabilities touchCapabilities = new Windows.Devices.Input.TouchCapabilities();
TouchPresent.Text = touchCapabilities.TouchPresent != 0 ? "Yes" : "No";
Contacts.Text = touchCapabilities.Contacts.ToString();
}
Получение свойств указателя
Пространство имен Windows.Devices.Input содержит класс PointerDevice , используемый для получения сведений о том, поддерживают ли обнаруженные устройства входные данные указателя (сенсорный, сенсорный панель, мышь или перо). Просто создайте новый объект PointerDevice и получите нужные свойства.
Заметка Значения, возвращаемые здесь свойствами, основаны на всех обнаруженных устройствах указателя: логические свойства возвращают ненулевое значение, если хотя бы одно устройство поддерживает определенную возможность, а числовые свойства возвращают максимальное значение, предоставляемое любым указателем устройства.
Следующий код использует таблицу для отображения свойств и значений для каждого устройства указателя.
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
- Базовый пример входных данных
- Пример ввода с низкой задержкой
- Пример режима взаимодействия пользователя
Архивные примеры
Windows developer