輸入: 擷取輸入裝置資訊, 虛擬鍵盤, Tab 導航, Pointer, Tap, Drag, Drop
介紹
重新想象 Windows 8 Store Apps 之 輸入
輸入裝置的相關資訊
SIP(Soft Input Panel)的應用
Tab 鍵導航
Pointer - 指標,滑鼠
Tap - 觸摸
Drag 和 Drop
樣本
1、示範如何擷取輸入裝置的相關資訊
Input/InputDeviceInfo.xaml
<Page x:Class="XamlDemo.Input.InputDeviceInfo" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:XamlDemo.Input" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"> <Grid Background="Transparent"> <Grid Margin="120 0 0 0"> <ScrollViewer Margin="0 0 10 10"> <TextBlock Name="lblMsg" FontSize="14.667" TextWrapping="Wrap" /> </ScrollViewer> </Grid> </Grid></Page>
Input/InputDeviceInfo.xaml.cs
/* * 示範如何擷取輸入裝置的相關資訊 */ using System;using Windows.Devices.Input;using Windows.UI.Xaml.Controls;using Windows.UI.Xaml.Navigation; namespace XamlDemo.Input{ public sealed partial class InputDeviceInfo : Page { public InputDeviceInfo() { this.InitializeComponent(); } protected override void OnNavigatedTo(NavigationEventArgs e) { // 擷取滑鼠裝置的相關資訊 MouseCapabilities mouseCapabilities = new MouseCapabilities(); lblMsg.Text = "MouseCapabilities.MousePresent: " + mouseCapabilities.MousePresent; // 是否存在滑鼠 lblMsg.Text += Environment.NewLine; lblMsg.Text += "MouseCapabilities.HorizontalWheelPresent: " + mouseCapabilities.HorizontalWheelPresent; // 是否有水平滾輪 lblMsg.Text += Environment.NewLine; lblMsg.Text += "MouseCapabilities.VerticalWheelPresent: " + mouseCapabilities.VerticalWheelPresent; // 是否有垂直滾輪 lblMsg.Text += Environment.NewLine; lblMsg.Text += "MouseCapabilities.SwapButtons: " + mouseCapabilities.SwapButtons; // 是否交換了左右按鈕 lblMsg.Text += Environment.NewLine; lblMsg.Text += "MouseCapabilities.NumberOfButtons: " + mouseCapabilities.NumberOfButtons; // 滑鼠上的按鈕數量 lblMsg.Text += Environment.NewLine; lblMsg.Text += Environment.NewLine; // 擷取硬體鍵盤裝置的相關資訊 KeyboardCapabilities keyboardCapabilities = new KeyboardCapabilities(); lblMsg.Text += "KeyboardCapabilities.KeyboardPresent: " + keyboardCapabilities.KeyboardPresent; // 是否存在硬體鍵盤 lblMsg.Text += Environment.NewLine; lblMsg.Text += Environment.NewLine; // 擷取觸摸裝置的相關資訊 TouchCapabilities touchCapabilities = new TouchCapabilities(); lblMsg.Text += "TouchCapabilities.TouchPresent: " + touchCapabilities.TouchPresent; // 是否存在觸摸裝置 lblMsg.Text += Environment.NewLine; lblMsg.Text += "TouchCapabilities.Contacts: " + touchCapabilities.Contacts; // 觸摸裝置所支援的多點觸摸的點數 lblMsg.Text += Environment.NewLine; lblMsg.Text += Environment.NewLine; // 擷取 Pointer 裝置(Touch, Pen, Mouse)的相關資訊 var pointerDeviceList = PointerDevice.GetPointerDevices(); int displayIndex = 0; foreach (PointerDevice pointerDevice in pointerDeviceList) { displayIndex++; lblMsg.Text += "Pointer Device Index: " + displayIndex; lblMsg.Text += Environment.NewLine; lblMsg.Text += "PointerDevice.PointerDeviceType: " + pointerDevice.PointerDeviceType; // Pointer 類型(Touch, Pen, Mouse) lblMsg.Text += Environment.NewLine; lblMsg.Text += "PointerDevice.IsIntegrated: " + pointerDevice.IsIntegrated; // 是否是整合裝置 lblMsg.Text += Environment.NewLine; lblMsg.Text += "PointerDevice.MaxContacts: " + pointerDevice.MaxContacts; // 最大的同時觸摸點數 lblMsg.Text += Environment.NewLine; lblMsg.Text += "PointerDevice.PhysicalDeviceRect: " + pointerDevice.PhysicalDeviceRect; // 物理裝置的 Rect lblMsg.Text += Environment.NewLine; lblMsg.Text += "PointerDevice.ScreenRect: " + pointerDevice.ScreenRect; // Pointer 裝置所支援的螢幕的 Rect lblMsg.Text += Environment.NewLine; lblMsg.Text += Environment.NewLine; } } }}