【发布时间】:2021-04-18 08:55:37
【问题描述】:
我正在尝试根据另一个控件的颜色(即Border)设置Label 的Foreground 颜色。
如果我为边框使用预定义的 XAML 颜色,它可以工作,但如果我使用自定义 RGB 颜色,它就不行。
以下示例有效,因为用于边框的颜色是blue。
<Application.Resources>
<Style x:Key="labelStyle" TargetType="Label">
<Setter Property="Foreground" Value="Green" />
<Style.Triggers>
<DataTrigger Binding="{Binding BorderBrush, ElementName=borderControl}" Value="blue">
<Setter Property="Foreground" Value="red" />
</DataTrigger>
</Style.Triggers>
</Style>
</Application.Resources>
<Border x:Name="borderControl" Background="#ffecec" BorderBrush="blue" BorderThickness="1" Padding="10" Margin="20" CornerRadius="5">
<Label Style="{StaticResource labelStyle}" Content="This message is red if border color is blue" />
</Border>
以下示例不起作用,因为用于边框的颜色是#f5aca6。
<Application.Resources>
<Style x:Key="labelStyle" TargetType="Label">
<Setter Property="Foreground" Value="Green" />
<Style.Triggers>
<DataTrigger Binding="{Binding BorderBrush, ElementName=borderControl}" Value="#f5aca6">
<Setter Property="Foreground" Value="red" />
</DataTrigger>
</Style.Triggers>
</Style>
</Application.Resources>
<Border x:Name="borderControl" Background="#ffecec" BorderBrush="#f5aca6" BorderThickness="1" Padding="10" Margin="20" CornerRadius="5">
<Label Style="{StaticResource labelStyle}" Content="This message is green and should be red" />
</Border>
【问题讨论】:
标签: c# wpf xaml datatrigger