我在WPF应用程序中使用自定义模式对话框,该对话框将在触摸设备上运行(Windows 10)。我正在使用MVVM模式。
我的问题:
我会遇到不同的触摸行为,具体取决于打开对话框的位置。如果从例如按钮事件处理程序或通过按钮命令绑定打开它,一切正常。然后对话框按钮(通常是" OK""取消")在第一次触摸时关闭对话框。但是当从代码打开对话框(不是由按钮事件或按钮命令绑定驱动)时,对话框按钮在第一次触摸时不响应。然后我需要在触摸按钮之前触摸对话框中的某个位置。这有点烦人。
我有一个实现了ExitCommand的视图模型,可以打开对话框。一些XAML示例:
这很好用:
<Button Content="Exit" Command="{Binding ExitCommand}"/>
这不能令人满意:
<Label Content="Exit">
<Label.InputBindings>
<MouseBinding Gesture="LeftClick" Command="{Binding ExitCommand}"/>
</Label.InputBindings>
</Label>
如上所述,在没有任何用户操作的情况下从代码打开对话框也不起作用。
线索,有人吗?
答案 0 :(得分:0)
我不确定此解决方案是否可以解决您的问题,但请尝试一下:
的xmlns:I =&#34; HTTP://schemas.microsoft.com/expression/2010/interactivity"
<Label Content="Exit">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDown">
<!-- MouseDown trigger for touch down too. -->
<i:InvokeCommandAction Command="{Binding ExitCommand}"
x:Name="exitCommandMouse" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Label>
我使用类似的网格解决方案(而不是标签),它在win 8.1上与触摸屏完美配合。