WPF中的MVVM-Block Tab键

时间:2014-06-06 21:08:05

标签: wpf mvvm childwindow

我在MVF中使用MVVM。我实现了WPF扩展工具包,并且我使用了ChildWindow,当我打开ChildWindow时,启用了属性IsModal。但是此属性不会阻止使用Tab进行导航。

当ChildWindos打开时,我需要阻止使用Tab进行导航。

我尝试使用Focusable属性但不提供服务。

2 个答案:

答案 0 :(得分:1)

我了解您的问题是在显示ChildWindow时背景中的标签。

您应该尝试修改de Window的属性KeyboardNavigation.TabNavigation

如果您使用MVVM模式在XAML中执行类似的操作:

<Window
KeyboardNavigation.TabNavigation="{Binding TabNavigationMode}"
>

在ViewModel中:

private KeyboardNavigationMode _tabNavigationMode;
public KeyboardNavigationMode TabNavigationMode
{
  get { return _tabNavigationMode; }
  set { _tabNavigationMode = value; RaisePropertyChanged("TabNavigationMode");
}

创建一个这样的方法,在打开和关闭子窗口时调用

public void IsTabNavigationEnable(bool isEnable)
{
    if (isEnable) TabNavigationMode = KeyboardNavigationMode.Contained;
    else TabNavigationMode = KeyboardNavigationMode.None;
}

我尝试过它并且运行正常。该选项卡在后台禁用,但不在ChildWindow中禁用。

答案 1 :(得分:0)

这是一个已知问题,扩展工具包团队需要对其进行处理。同时,如果您仍然希望使用ChildWindow实现此功能,我建议订阅PreviewKeyDown事件并手动更改其行为当子窗口进入模态时,选项卡和箭头键。

问题的链接是

https://wpftoolkit.codeplex.com/discussions/252462