如何在WPF中移除(避免)焦点

4

我希望避免焦点聚焦在WPF Grid上,为此我尝试了以下方法:

<Grid Focusable="False" />

但它没有起作用。我还尝试过以下方法:
<Grid x:Name="Grid" Focusable="False" FocusVisualStyle="{x:Null}" />

但是我又失败了。我该如何避免焦点集中在 Grid 上?


“Grid”在哪里?它是根目录下还是其他地方?这个结构应该可以工作,提供更多信息。 - Anatoliy Nikolaev
GridWindow 中,还是在 UserControl 中(或其他地方)? - Anatoliy Nikolaev
你是如何测试网格的焦点的? - Kcvin
你使用ContentControl或类似的控件吗?它们可以获取焦点,即默认情况下Focusable =“True” - Anatoliy Nikolaev
是的,我正在将我的用户控件加载到内容控件中,这可能会导致它获得焦点。我会检查一下。 - Rudresh Bhatt
显示剩余2条评论
1个回答

8

ContentControl具有默认的Focusable="True",因为Control基类重写了Focusable属性的元数据,并将其默认值设置为true-MSDN

只需将该值设置为false

<ContentControl Focusable="False" />

为了追踪焦点所在位置,有一个很好的程序可以使用,它就是Snoop。通过该程序,你可以找到焦点所在的源代码位置。

非常感谢Anatoliy Nikolaev,我会尝试并告诉您结果。 - Rudresh Bhatt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接