屏幕中的 WPF 触摸事件不适用于 UserControl
WPF touch event in screen not working with UserControl
我们正在开发 WPF 应用程序。我们使用 .net4.7,但我们已经用 .net5 对其进行了测试,但问题仍然存在。
我们有一些不同的元素(按钮、输入文本...),有时它们必须显示“弹出窗口”(作为消息框)。
所以,当我们有一个列表项(来自 windows 控件的列表视图)并且我们想要显示一个 MessageBox 时,我们的问题就出现了;如果我们用按钮而不是列表项做同样的事情,它就可以了。
如果我们用鼠标管理 MessageBox,一切都很好,但是我们用触摸屏管理,我们需要点击 10 次才能让它工作。
这是我们在 xml 中的列表(它来自模板)。
<lists:VehicleList Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3"
DataContext="{Binding Path=DataContext, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type local:StepSelect}}}"/>
这是我们通过 ViewModel 显示的结果 yes/no 以及我们必须使用触摸屏点击 10 次的按钮:
MessageBox.ShowDialog(InfoMessages.driverContinue, MessageBoxButton.YesNo) == MessageBoxResult.Yes) { NavigateForward(this, res);
有什么想法吗?
提前致谢:)
PS:我们用Windows10.
已编辑:
发现我做MessageBox.ShowDialog(whatever);
的时候出现问题,但是我做MessageBox.Show(whatever);
的时候没有出现
有什么想法吗?
问题是因为我们在列表中遗漏了以下代码:
private void ListView_PreviewTouchDown(object sender, System.Windows.Input.TouchEventArgs e)
{
e.Handled = true;
}
我们正在开发 WPF 应用程序。我们使用 .net4.7,但我们已经用 .net5 对其进行了测试,但问题仍然存在。
我们有一些不同的元素(按钮、输入文本...),有时它们必须显示“弹出窗口”(作为消息框)。
所以,当我们有一个列表项(来自 windows 控件的列表视图)并且我们想要显示一个 MessageBox 时,我们的问题就出现了;如果我们用按钮而不是列表项做同样的事情,它就可以了。
如果我们用鼠标管理 MessageBox,一切都很好,但是我们用触摸屏管理,我们需要点击 10 次才能让它工作。
这是我们在 xml 中的列表(它来自模板)。
<lists:VehicleList Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3"
DataContext="{Binding Path=DataContext, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type local:StepSelect}}}"/>
这是我们通过 ViewModel 显示的结果 yes/no 以及我们必须使用触摸屏点击 10 次的按钮:
MessageBox.ShowDialog(InfoMessages.driverContinue, MessageBoxButton.YesNo) == MessageBoxResult.Yes) { NavigateForward(this, res);
有什么想法吗?
提前致谢:)
PS:我们用Windows10.
已编辑:
发现我做MessageBox.ShowDialog(whatever);
的时候出现问题,但是我做MessageBox.Show(whatever);
有什么想法吗?
问题是因为我们在列表中遗漏了以下代码:
private void ListView_PreviewTouchDown(object sender, System.Windows.Input.TouchEventArgs e)
{
e.Handled = true;
}