WPF:单击事件不会在触摸屏上引发

时间:2018-12-19 12:34:12

标签: c# wpf touch

我不知道为什么我们的触摸设备无法在新窗口中正常工作。

我创建了一个在此处重现错误的示例:

MainWindow.xaml

<Window 
    x:Class="touchTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Height="400" Width="400">
    <StackPanel>
        <TextBox Text="{Binding Integer}" FontSize="48" />
        <TextBox Text="{Binding Integer}" FontSize="48" />
    </StackPanel>
</Window>

MainWindow.xaml.cs

public partial class MainWindow
{
    public MainWindow()
    {
        InitializeComponent();

        DataContext = new ViewModel();
    }
}

ViewModel.cs

public class ViewModel
{
    private int _integer;

    public int Integer
    {
        get => _integer;
        set
        {
            _integer = value;
            new DialogWindow().ShowDialog();
        }
    }
}

DialogWindow.xaml

<Window
    x:Class="touchTest.DialogWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Height="200" Width="200">
    <Grid>
        <Button Content="Close" Click="OnClick" />
    </Grid>
</Window>

DialogWindow.xaml.cs

public partial class DialogWindow
{
    public DialogWindow()
    {
        InitializeComponent();
    }

    private void OnClick(object sender, RoutedEventArgs e)
    {
        Close();
    }
}

当其中一个文本框的内容发生更改,并且您通过触摸使另一个文本框聚焦时,将弹出DialogWindow。现在出现了问题,在单击事件发生并关闭对话框之前,我们必须多次按下(触摸)关闭按钮(例如在其中一台设备上按9次)。

TouchDown事件正常运行。我们还在Button以外的其他元素上进行了实验,例如TextBox。因此,切换到TouchDown事件不是解决方案。新窗口中的所有内容似乎都是错误的。

1 个答案:

答案 0 :(得分:0)

尝试像这样使用Tunneling TouchUp事件:

<Button Content="Close" Click="OnClick" PreviewTouchUp="OnClick" />