使用默认按钮事件将焦点设置为另一个元素?

时间:2015-07-22 16:07:12

标签: wpf mvvm

我尝试了以下内容:

<Button IsDefault="True" Content="Process Test File" 
        FocusManager.FocusedElement="{Binding ElementName=txtClientId}" 
        Command="{Binding ProcessFileCommand, UpdateSourceTrigger=PropertyChanged}">
</Button>

我将按钮设置为默认值。因此,当用户点击回车键时,它会处理命令,但不会像询问的那样设置焦点。但是,当用鼠标单击时,它会设置焦点。我确信必须有一个简单的方法让设置焦点也能用于默认操作。

1 个答案:

答案 0 :(得分:1)

在Button的Click事件中进行聚焦。当你按Enter键时它也会被调用。

<Button IsDefault="True" Content="Process Test File" 
        Command="{Binding ProcessFileCommand, UpdateSourceTrigger=PropertyChanged}"
        Click="Button_Click">
</Button>

然后,在代码隐藏中:

private void Button_Click(object sender, RoutedEventArgs e)
{
    Keyboard.Focus(txtClientId);
}