TouchDown 事件不断升级为 MouseLeftButton 事件

Mic*_*lla 5 wpf touch windows-8.1

在 Windows 8 上运行的 WPF 应用程序中,TouchDown 事件始终提升为 MouseLeftButton 事件。我不知道为什么,我想避免这种情况。

这是完整的示例代码:

XAML

<Window x:Class="TestTouchAndMouse.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525"
        Stylus.IsPressAndHoldEnabled="False">
    <Canvas x:Name="MyCanvas" Background="White" IsManipulationEnabled="False">
        <TextBox x:Name="TB" InkCanvas.Top="50" InkCanvas.Left="10" FontSize="20" />
    </Canvas>
</Window>
Run Code Online (Sandbox Code Playgroud)

C#

namespace TestTouchAndMouse
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            MyCanvas.MouseLeftButtonDown += MyCanvas_MouseLeftButtonDown;
            MyCanvas.MouseRightButtonDown += MyCanvas_MouseRightButtonDown;
            MyCanvas.TouchDown += MyCanvas_TouchDown;
        }

         void MyCanvas_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
         {
             e.Handled = true;
             TB.Text = "MOUSE RIGHT !";
         }
         void MyCanvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
         {
             e.Handled = true;
             TB.Text = "MOUSE LEFT !";
         }
         void MyCanvas_TouchDown(object sender, TouchEventArgs e)
         {
             e.Handled = true;
             TB.Text = "TOUCH !";
         }
     }
}
Run Code Online (Sandbox Code Playgroud)

在 Windows 7 上

  • 一切正常。

在 Windows 8 上

  • MouseLeftButton 或 MouseRightButton 事件将显示“鼠标向左!” 或“鼠标右键!” 正如预期的那样。
  • TouchDown 事件将很快显示“Touch!” 然后文本将更改为“鼠标向左!”。