丢失按钮的焦点

时间:2012-03-15 20:03:42

标签: c# wpf button focus

有一个按钮,用下面的代码以编程方式点击,但它保持专注(虽然我不确定术语)。我怎么能摆脱它?

after before

private void txt_addRemove_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Return)
    {
        btn_BC_add.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));                
    }
}

3 个答案:

答案 0 :(得分:2)

除此之外真的连线呼叫ButtonClick 应该做什么,至少定义Command,将其与按钮相关联,并从此代码 调用RaiseEvent,但是请拨打与该按钮相关联的Command。在实践中,你调用一个函数。

焦点如何, 足以明确地将焦点设置为视图上的其他控件。

希望这有帮助。

答案 1 :(得分:0)

有很多方法可以正确地做你想要的,这里有一个:

最好将UpdateSourceTrigger设置为PropertyChanged并使用Command将Enter键绑定到。这应该是您与Button绑定的命令(因此将业务逻辑移动到视图模型层)。

            


或者,如果这是表单上唯一的按钮,则可以将IsDefault属性设置为true(您仍然希望将UpdateSourceTrigger设置为PropertyChanged)。< / p>

答案 2 :(得分:0)

您可以使用TraversalRequest ClassMoveFocus或明确将Focus设置为其他元素。

btn_BC_add.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));

如果您的按钮位于Focus订单的最后一位,您可以尝试其他FocusNavigationDirection选项,例如上一个,第一个,最后一个,左侧,右侧,上方,下方,