这不在模板中,它是我的XAML文档正文中的<Label>
。请注意,标签的内容设置为&#39; PENDING&#39;。这是监视服务器连接,并且在不同时间,代码隐藏可能会将内容的值更改为CONNECTED或ERROR。当发生这种情况时,我希望改变文本的颜色。我以为这会做到,但它并没有...我得到的只是黑色文字。
<Label x:Name="lbl_Connected" Content="PENDING" FontWeight="Bold" Grid.Row="1" Grid.Column="1" HorizontalAlignment="Left" VerticalAlignment="Center">
<Label.Style>
<Style TargetType="Label">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource self}, Path=Content.Value}" Value="CONNECTED">
<Setter Property="Label.Foreground" Value="Green"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource self}, Path=Content.Value}" Value="PENDING">
<Setter Property="Label.Foreground" Value="Yellow"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource self}, Path=Content.Value}" Value="ERROR">
<Setter Property="Label.Foreground" Value="Red"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Label.Style>
</Label>
有人可以告诉我应该怎么做吗?
答案 0 :(得分:1)
只需从绑定路径中删除“.Value”部分,即:
<DataTrigger Binding="{Binding RelativeSource={RelativeSource self}, Path=Content}" Value="CONNECTED">
<Setter Property="Label.Foreground" Value="Green"></Setter>
</DataTrigger>
无论如何,如果我是你,我会使用Binding来设置Label内容,并使用converter来处理Foreground颜色。