C# 如何在应用程序中的任何位置丢失键盘作用域?
我有一个委托命令,当调用该命令时,我希望在任何具有焦点的控件上失去焦点。我使用的是MVVM,因此委托命令的execute中的代码没有对UIVM元素的引用。我很乐意转移焦点或使用任何技巧来实现这一点,但它需要有点不可知的控制有焦点C# 如何在应用程序中的任何位置丢失键盘作用域?,c#,wpf,xaml,mvvm,focus,C#,Wpf,Xaml,Mvvm,Focus,我有一个委托命令,当调用该命令时,我希望在任何具有焦点的控件上失去焦点。我使用的是MVVM,因此委托命令的execute中的代码没有对UIVM元素的引用。我很乐意转移焦点或使用任何技巧来实现这一点,但它需要有点不可知的控制有焦点 不介意解决方案是XAML还是C#。也许您应该使用将焦点移动到下一个控件?在链接页面中,它将: 表示将焦点移动到另一个控件的请求 你需要做的就是找到当前关注的元素。同样,从MSDN上的链接页面: // Creating a FocusNavigationDirection
不介意解决方案是XAML还是C#。也许您应该使用将焦点移动到下一个控件?在链接页面中,它将: 表示将焦点移动到另一个控件的请求 你需要做的就是找到当前关注的元素。同样,从MSDN上的链接页面:
// Creating a FocusNavigationDirection object and setting it to a
// local field that contains the direction selected.
FocusNavigationDirection focusDirection = _focusMoveValue;
// MoveFocus takes a TraveralReqest as its argument.
TraversalRequest request = new TraversalRequest(focusDirection);
// Gets the element with keyboard focus.
UIElement elementWithFocus = Keyboard.FocusedElement as UIElement;
// Change keyboard focus.
if (elementWithFocus != null)
{
elementWithFocus.MoveFocus(request);
}