c# - 超链接上的投影效果

标签 c# wpf xaml effects

我似乎找不到如何向流程文档中的超链接添加阴影。由于 HyperLink 不是 UIElement,因此它没有 Effect 属性(我所有的谷歌搜索都引导我找到了 DropShadowEffect)。它确实有一个 TextEffects 集合,但我似乎不知道如何用它创建阴影。最终我想做的是将阴影添加到背景画笔而不是文本本身。

我的要求相当模糊,我只需要让焦点外观看起来更好(即选项卡焦点和键盘焦点,而不是鼠标悬停),我认为浅色阴影可以解决问题,但我愿意其他建议。

(我没有足够的代表上传屏幕截图grr,所以这里是一个模拟)

这里有一个超链接

我想在灰色部分(在我的应用程序中为浅蓝色)周围添加阴影,而不是文本(如前面提到的)。

最佳答案

我很确定你不能在每个内联的基础上执行此操作。 WPF 提供效果的方式是将它们批量应用到可视化树中的单个对象。超链接等内容元素全部组合成其父级(FlowDocumentReader 或类似元素)中的单个视觉元素。

FlowDocument 控件确实能够使用 BlockUIContainer block 内容元素或 InlineUIContainer 内联内容元素来托 pipe 视觉元素。您可以使用它将 DropShadow 应用于单个超链接,如下所示:

<FlowDocument>
        <Paragraph>
            <Run Text="This is a" />
            <InlineUIContainer>
                <TextBlock Background="#FFCDCDCD">
                    <TextBlock.Effect>
                        <DropShadowEffect ShadowDepth="3" Color="#FFC9C9C9" />
                    </TextBlock.Effect>
                    <Hyperlink><Run Text="hyperlink" /></Hyperlink>
                </TextBlock>
            </InlineUIContainer>
        </Paragraph>
</FlowDocument>

关于c# - 超链接上的投影效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11106662/

相关文章:

c# - 为什么执行策略 'SqlServerRetryingExecutionStrategy'不支持用户发起的交易?

c# - ASP.NET 转发器问题(+关于最佳实践的问题)

c# - 如何使用 C# 获取 mysql 表中特定项目的计数

c# - 如何重新设置 DataGridTextColumn 的 TextBox 的样式?

c# - 在 WPF 中的两个用户控件之间发送命令

c# - 序列化包含 XDocument 的属性

C# 查找不同按钮颜色之间的路径

c# - WPF 中的 Prism 弹出新窗口

c# - ComboBox 绑定(bind)中断对 SelectedItem 中对象的更改

.net - 没有完全理解ScrollViewer SnappingPoints