大约几天前,我们运行了我们的WPF应用程序,我们中的一些人(在几个开发人员的计算机中)发现很多控件在聚焦时都有虚线边框,如下所示:
外部控件为Grid
,而在其他地方,Border
和其他人也有同样的问题。
在过去的日子里,它已经消失了。今天,我们所有团队都可以看到这个问题。
我们尝试设置元素FocusVisualStyle="{x:Null}"
,它根本没有效果,我们无法找到影响它的更改。
那么,这个问题是否与计算机环境有关?什么可能的原因会导致这个奇怪的问题?
更新
我们刚刚在干净的虚拟机中尝试了我们的应用程序,它可以被复制,所以这个问题的唯一要点就是我们的代码。
由于我们没有找到相关代码导致此问题,我们不知道上传什么XAML代码来显示此问题。
答案 0 :(得分:5)
由于FocusVisualStyle
不支持从字符串转换,因此这两个选项对我有用:
<Grid FocusVisualStyle="{x:Null}" />
或者
<Grid>
<Grid.FocusVisualStyle>
<Style />
</Grid.FocusVisualStyle>
</Grid>
答案 1 :(得分:2)
我想这对OP来说没有多大用处,但万一其他人在努力解决问题...
我强烈怀疑设置FocusVisualStyle =&#34; {x:Null}&#34;是答案,但有时可能不明显在视觉树中的哪个控件(s?)设置它。我建议使用Snoop,窥探应用程序,启用预览,展开预览区域,通过单击可视树在snoop中重新创建问题,然后重新选择应用程序中的问题区域,如下所示:
然后尝试删除FocusVisualStyle,只需单击Value(我的屏幕截图中为黄色)并删除即可。冲洗并重复,直到找到罪魁祸首。可视树树可能不会与逻辑树完全匹配,但通过反复试验,你可以解决它。
在我上面的例子中,我发现ScrollViewer导致了我讨厌的虚线矩形而不是我第一次认为的画布。
关心大卫
答案 2 :(得分:1)
在这些控件上设置IsTabStop
到false
应解决此问题。
答案 3 :(得分:1)
您应该将FocusVisualStyle属性设置为none。
答案 4 :(得分:-4)
最后,我们刚刚修改了问题发生的所有地方。
真可惜......