我正在为 Windows Surface 设备开发一个简单的应用程序(我已经正确安装了 SDK v 2.0 和运行时)。我正在我的笔记本电脑上开发应用程序,然后通过 USB 在表面 devia simpy 上部署它(我报告这个以提供更多信息,但我认为问题不是来自这里)。
我已经使用通过 VisualStudio 2010 提供的 Surface 模板在 WPF 中创建了一个默认项目(即使我正在使用 VS 2012 进行编辑)并添加了一些测试
public SurfaceWindow1()
{
InitializeComponent();
// Add handlers for window availability events
AddWindowAvailabilityHandlers();
var Dev = Stylus.CurrentStylusDevice;
Console.WriteLine(Dev != null ? Dev.ToString() : "null");
Console.WriteLine(Dev != null ? Dev.TabletDevice.Type.ToString() : "null");
StylusDown += new StylusDownEventHandler(SurfaceWindow1_StylusDown);
MouseDown += new MouseButtonEventHandler(SurfaceWindow1_MouseDown);
TouchDown += new EventHandler<TouchEventArgs>(SurfaceWindow1_TouchDown);
}
void SurfaceWindow1_StylusButtonDown(object sender, StylusButtonEventArgs e)
{
Console.WriteLine("Stylus");
}
void SurfaceWindow1_TouchDown(object sender, TouchEventArgs e)
{
Console.WriteLine("Touch");
}
void SurfaceWindow1_MouseDown(object sender, MouseButtonEventArgs e)
{
Console.WriteLine(e.StylusDevice == null ? "-" : e.StylusDevice.Name);
Console.WriteLine("Mouse");
}
void SurfaceWindow1_StylusDown(object sender, StylusDownEventArgs e)
{
Console.WriteLine("Stylus");
}
显然,在我的笔记本电脑上运行时,每次单击鼠标时的输出如下
- 鼠
所以它正确地使用了正确的事件(MouseDown)。
问题如下:当我在 Surface 设备上启动它时,上面显示的输出是相同的,即使我用触控笔按下屏幕而不是使用集成在小键盘中的鼠标垫。此外,如果我用手指按下,则不会引发任何树事件(我预计会引发 Touch)。
我有什么遗漏或做错了吗?谢谢指教。
附加信息:正如我所说,我正在使用 .Net 4.5 和 Windows 7 在 Visual Studio 2012 中开发。Surface 设备运行 win 8.1 操作系统