我不知道为什么我们的触摸设备无法在新窗口中正常工作。
我创建了一个在此处重现错误的示例:
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
事件不是解决方案。新窗口中的所有内容似乎都是错误的。
答案 0 :(得分:0)
尝试像这样使用Tunneling TouchUp事件:
<Button Content="Close" Click="OnClick" PreviewTouchUp="OnClick" />