如何向 wpf 控件添加类似 chrome 的焦点矩形?

发布于 2024-12-11 13:29:38 字数 219 浏览 0 评论 0原文

关于如何删除焦点矩形有很多问题,但我希望它们始终显示,就像 Chrome/Safari 一样。我想我想使用装饰器,以免干扰控件具有的现有样式,但我从未使用过它们,也找不到任何有关如何执行我想要的操作的示例。有人能指出我正确的方向吗?

编辑:这里的输入框聚焦时有蓝色边框

输入框聚焦时有蓝色边框

There are a lot of questions on how to remove focus rectangles, but I want them to always show, just like Chrome/Safari does. I think I want to use an adorner so as not to interfere with existing styles that a control has, but I've never used them and can't find any examples on how to do what I want. Could anyone point me in the right direction?

Edit: The input box here has a blue border when focused

Input box has blue border when focused

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

泛泛之交 2024-12-18 13:29:38

这种效果称为“外发光”;一旦你知道了这一点,谷歌就会发现大量的东西。我发现这工作得很好:

        <DropShadowEffect x:Key="SelectionGlow" BlurRadius="3" ShadowDepth="0" Color="{StaticResource {x:Static SystemColors.HighlightColorKey}}" Direction="0" />

        <Style TargetType="TextBox">
            <Style.Triggers>
                <Trigger Property="IsKeyboardFocusWithin" Value="True">
                    <Setter Property="Effect" Value="{StaticResource SelectionGlow}"/>
                </Trigger>
            </Style.Triggers>
        </Style>

关于这个解决方案的一些事情:

  1. 它不会禁用按钮上的焦点矩形等
  2. 我不确定性能是否是一个问题 - 位图效果渲染存在(曾经?)问题。我不确定这是否再适用,或者这是否符合位图效果。它只用在焦点元素上,所以它不会太糟糕。

The effect is called "outer glow"; once you know that, google turns up tons of stuff. I found this works pretty well:

        <DropShadowEffect x:Key="SelectionGlow" BlurRadius="3" ShadowDepth="0" Color="{StaticResource {x:Static SystemColors.HighlightColorKey}}" Direction="0" />

        <Style TargetType="TextBox">
            <Style.Triggers>
                <Trigger Property="IsKeyboardFocusWithin" Value="True">
                    <Setter Property="Effect" Value="{StaticResource SelectionGlow}"/>
                </Trigger>
            </Style.Triggers>
        </Style>

A couple things about this solution:

  1. It doesn't disable the focus rectangle on buttons, etc
  2. I'm not sure if performance is an issue- there is (was?) problems with bitmap effect rendering. I'm not sure if that applies anymore, or if this qualifies as a bitmap effect. It's only used on the focused element, so it can't be too bad.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文