2

我正在为 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 操作系统

4

1 回答 1

0

我已经解决了这个问题。

触控笔事件(不知道如何)与 Surface SDK 冲突。一旦我从项目中删除了 SDK 引用,一切都很顺利,问题就解决了。

我发布这个只是为了社区信息。

于 2014-08-20T13:51:31.880 回答