我有一个带有“浏览”按钮的小型用户控件,用于选择一些文件,并带有用于可视化所选文件路径的文本框:
<TextBox Text="{Binding FilePath, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<Button Content="Browse" cal:Message.Attach="SelectInstallationPointsFile" />
从窗口对话框开始的控件作为带有两个按钮的窗口 -OK
并且Cancel
在窗口资源样式(代码的简化版本)上定义:
<Style TargetType="{x:Type Window}">
...
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Window}">
...
<ContentControl Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" /> <!-- here will be the user control -->
<Button IsDefault="True" Content="OK" cal:Message.Attach="Apply" />
<Button IsCancel="True" cal:Message.Attach="Cancel" />
...
</Style>
对话框视图(绿色部分 - 窗口,红色 - 用户控件):
问题是下一个 - 当您单击Enter
按钮时,然后Browse
从用户控件中对按钮做出反应,而不是OK
从窗口对话框中对按钮做出反应,尽管OK
按钮有IsDefault="True"
!