有一个按钮,用下面的代码以编程方式点击,但它保持专注(虽然我不确定术语)。我怎么能摆脱它?
private void txt_addRemove_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Return)
{
btn_BC_add.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
}
}
答案 0 :(得分:2)
除此之外真的连线呼叫ButtonClick
。 应该做什么,至少定义Command
,将其与按钮相关联,并从此代码 调用RaiseEvent
,但是请拨打与该按钮相关联的Command
。在实践中,你调用一个函数。
焦点如何, 足以明确地将焦点设置为视图上的其他控件。
希望这有帮助。
答案 1 :(得分:0)
有很多方法可以正确地做你想要的,这里有一个:
最好将UpdateSourceTrigger
设置为PropertyChanged
并使用Command
将Enter键绑定到。这应该是您与Button绑定的命令(因此将业务逻辑移动到视图模型层)。
或者,如果这是表单上唯一的按钮,则可以将IsDefault
属性设置为true(您仍然希望将UpdateSourceTrigger
设置为PropertyChanged
)。< / p>
答案 2 :(得分:0)
您可以使用TraversalRequest Class
至MoveFocus
或明确将Focus
设置为其他元素。
即
btn_BC_add.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
如果您的按钮位于Focus订单的最后一位,您可以尝试其他FocusNavigationDirection
选项,例如上一个,第一个,最后一个,左侧,右侧,上方,下方,