似乎当 WPF 应用程序启动时,没有任何东西具有焦点。
这实在是太奇怪了。我使用过的所有其他框架都符合您的预期:将初始焦点放在 Tab 键顺序中的第一个控件上。但我已经确认它是 WPF,而不仅仅是我的应用程序 - 如果我创建一个新窗口,然后在其中放入一个 TextBox,然后运行该应用程序,则 TextBox 不会获得焦点,直到我单击它或按 Tab 键。恶心。
我的实际应用程序比文本框更复杂。我在 UserControls 中有几层 UserControls。其中一个 UserControls 具有 Focusable="True" 和 KeyDown/KeyUp 处理程序,我希望它在我的窗口打开时立即获得焦点。不过,我在某种程度上仍然是 WPF 新手,而且我不太幸运地弄清楚如何做到这一点。
如果我启动我的应用程序并按 Tab 键,那么焦点将转到我的可聚焦控件,并且它开始按照我想要的方式工作。但我不希望我的用户必须先按 Tab 键才能开始使用该窗口。
我已经尝试过 FocusManager.FocusedElement,但我不确定将其设置在哪个控件上(顶级窗口?包含可聚焦控件的父级?可聚焦控件本身?)或将其设置为什么。
我需要做什么才能让我的深层嵌套控件在窗口打开时立即获得初始焦点?或者更好的是,将第一个可聚焦控件置于 Tab 键顺序中?
这也有效:
<Window FocusManager.FocusedElement="{Binding ElementName=SomeElement}">
<DataGrid x:Name="SomeElement">
...
</DataGrid>
</Window>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)