我正在编写一个WPF应用程序,我希望我的一些超链接是默认的蓝色,其他的是绿色.没问题 - 我可以设置Foreground:
<TextBlock><Hyperlink Foreground="#0C0">Mark as done</Hyperlink></TextBlock>
Run Code Online (Sandbox Code Playgroud)
麻烦的是,当我这样做时,悬停效果消失了.在普通的超链接中,当我将鼠标移到链接上时,它会变为红色,当我将鼠标移开时,它会变回蓝色.但是在分配了Foreground属性的超链接中,它始终是那种颜色 - 红色悬停被完全抑制.
如何在不丢失默认悬停行为和颜色的情况下更改超链接的颜色?
Mat*_*ton 36
直接设置Foreground(正如您所做的那样)不起作用,并且在Style中设置它也不起作用,除非您从默认的超链接样式(必须包含OnMouseOver触发器)"派生"该样式.这样可行:
<TextBlock>
<Hyperlink>
<Hyperlink.Style>
<Style TargetType="Hyperlink"
BasedOn="{StaticResource {x:Type Hyperlink}}">
<Setter Property="Foreground" Value="#0C0"/>
</Style>
</Hyperlink.Style>
Mark as done
</Hyperlink>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)
将该样式提取回Window资源并使用键引用它可能会使更易读的XAML,但上面的代码完成了这项工作.
| 归档时间: |
|
| 查看次数: |
10571 次 |
| 最近记录: |