我是WPF的新手。我想在IsEnabled
的{{1}}属性变为TextBlock
时将超链接的前景色更改为其他颜色(比如灰色)。我应该添加false
来满足我的要求吗?
我卡在这里:
Style
答案 0 :(得分:2)
当超链接被禁用时,它默认将颜色更改为灰色(如果未覆盖默认的前景),因此您可以禁用TextBlock并完成
<TextBlock Margin="0,150,0,0"
TextAlignment="Center"
Background="White"
IsEnabled="{Binding ShowProgressRing}">
<Hyperlink x:Name="HyperLink"
TextDecorations="UnderLine"
FontSize="12"
FontWeight="SemiBold"
Command="{Binding Path=Command}" >
<Run Text="{Binding Path=HyperLinkText}"/>
</Hyperlink>
</TextBlock>
如果超链接应具有非默认的活动/禁用颜色,则可以使用触发器为超链接编写样式:
<Hyperlink x:Name="HyperLink"
TextDecorations="UnderLine"
FontSize="12"
FontWeight="SemiBold"
Command="{Binding Path=Command}" >
<Run Text="{Binding Path=HyperLinkText}"/>
<Hyperlink.Style>
<Style TargetType="Hyperlink">
<Setter Property="Foreground" Value="Blue"/>
<Style.Triggers>
<!--binding to the same view model property which sets IsEnabled-->
<DataTrigger Binding="{Binding ShowProgressRing}" Value="False">
<Setter Property="Foreground" Value="Gray"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Hyperlink.Style>
</Hyperlink>