【发布时间】:2014-08-28 11:37:50
【问题描述】:
我有一个这样的窗口:
<Window Background="LightBlue" Title="SHMD Ämneshantering"
x:Class="SHMD_Edit.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:SHMD_Edit"
xmlns:localViewModels="clr-namespace:SHMD_Edit.ViewModels"
xmlns:localViews="clr-namespace:SHMD_Edit.Views"
Height="700" Width="1105" MinHeight="750" MinWidth="1005" Focusable="True" Name="window">...</Window>
我正在尝试添加可在整个应用程序中使用的键绑定,如下所示:
<Window.InputBindings>
<KeyBinding Gesture="CTRL+R" Command="{Binding AddSubstanceCommand}"/>
</Window.InputBindings>
但是,除非我将焦点放在某个列表视图中的元素(例如元素)上,否则该命令将不起作用。我希望用户能够在任何地方运行命令,因此我尝试将焦点添加到窗口,认为稍后关注的任何内容都将成为窗口的子窗口,因此手势应该传播到正确的目的地。
但是,我无法使窗口聚焦,正如您所见,我已将其设置为可聚焦,并且在检查即时窗口时,我可以确认它确实是可聚焦的,但在其上运行 Focus() 会返回 false并且没有设置焦点。
如何将焦点设置到我的窗口?还有其他方法可以获得全局可用的键绑定吗?
【问题讨论】:
-
我制作了空窗口,
RelayCommand工作。您需要在此处放置标记以重现问题。无论如何,为什么不能在Window中的任何位置放置任何元素(Visibility = Collapsed)并以编程方式对其调用 Focus() 方法? -
你在做一些事情,我没有将 datacontext 设置为整个窗口,而是设置为它包含的网格,这就是为什么没有按预期工作的原因。
标签: c# wpf xaml focus key-bindings