默认按钮不响应进入按下窗口对话框

时间:2013-01-28 11:12:20

标签: wpf xaml dialog window

我有一个小型用户控件,使用“浏览”按钮选择某个文件,并使用文本框显示所选文件的路径:

<TextBox Text="{Binding FilePath, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<Button Content="Browse" cal:Message.Attach="SelectInstallationPointsFile" />

控件从窗口对话框开始,作为带有两个按钮的窗口 - OKCancel在窗口资源样式上定义(代码的简化版本):

<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>

对话框视图(绿色部分 - 窗口,红色 - 用户控件):

green section - the window, red - the user control

接下来是问题 - 当您点击Enter按钮时,会对来自用户控件的Browse按钮做出反应,但不会从窗口对话框做出OK按钮,OK按钮有IsDefault="True"

2 个答案:

答案 0 :(得分:0)

YourUserControl.xaml.cs中的

public partial class YourUserControl : UserControl
{
    public YourUserControl()
    {
        InitializeComponent();
        this.OkBtn.Focus();
    }
}
抱歉,我的错,您可以试试:

<ControlTemplate TargetType="{x:Type Window}" FocusManager.FocusedElement="{Binding ElementName=OkBtn}">

答案 1 :(得分:0)

所以,我在“浏览”按钮中尝试了Focusable =“False”,它有效!)