4
我做了一个风格,使得TextBlock
看起来像一个链接:条件样式在WPF
<Style x:Key="linkStyle" TargetType="TextBlock">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="TextDecorations" Value="Underline" />
</Trigger>
</Style.Triggers>
<Setter Property="Cursor" Value="Hand" />
<Setter Property="Foreground" Value="Blue" />
<EventSetter Event="MouseLeftButtonDown" Handler="navigateLink" />
</Style>
如何应用它,只有当TextBlock.Text
开始与的http://?
您可以使用StyleSelector。看到这篇文章http://stackoverflow.com/questions/5082509/wpf-use-a-styleselector-for-a-button – Phil 2012-02-18 12:11:36
也许你必须使用事件和自定义的C#代码来做到这一点;默认情况下,XAML不够智能以模仿String.StartsWith或基于正则表达式应用样式。当然,您也可以创建自定义控件,继承TextBlock并具有像DoesTextStartWithHttp这样的属性,因此您可以在XAML中使用此属性,但对于我来说,使用事件处理程序更改C#代码中的样式更容易。 – Vitaliy 2012-02-18 13:08:27
可以使用自定义的C#代码(它已经有一些'navigateLink'函数),但是我希望能够将结果样式应用到简单的'TextBlock' – Poma 2012-02-18 14:07:51