我有两个删除线数据触发器,其中之一我想设为黑色(默认),但其中之一应该是删除线红色,有人可以帮我设置红色吗,这是我的代码:
<TextBlock Name="Number" Grid.Column="0" Text="{Binding Number}"/>
<TextBlock Name="Name" Grid.Column="1" Text="{Binding Name}"/>
<TextBlock Name="Price" Grid.Column="0" Text="{Binding Price}"/>
<TextBlock Name="Stock" Grid.Column="1" Text="{Binding Stock}"/>
<DataTrigger Binding="{Binding IsStrikethroughRed}" Value="True">
<Setter TargetName="Number" Property="TextBlock.TextDecorations" Value="Strikethrough"/>
<Setter TargetName="Name" Property="TextBlock.TextDecorations" Value="Strikethrough"/>
<Setter TargetName="Price" Property="TextBlock.TextDecorations" Value="Strikethrough"/>
<Setter TargetName="Stock" Property="TextBlock.TextDecorations" Value="Strikethrough"/>
</DataTrigger>
TextDecorations.Strikethrough 只是 TextDecorations 类中预定义的
TextDecorationCollection
的静态实例。同样,您可以定义自己的 TextDecorationCollection
并通过 DataTrigger 应用它。
<Label>
<Label.Style>
<Style xmlns:PresentationOptions="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options"
TargetType="{x:Type ContentControl}">
<Style.Resources>
<TextDecorationCollection x:Key="RedStrikethrough"
PresentationOptions:Freeze="True">
<TextDecoration Location="Strikethrough">
<TextDecoration.Pen>
<Pen Brush="Red" Thickness="2"/>
</TextDecoration.Pen>
</TextDecoration>
</TextDecorationCollection>
</Style.Resources>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ContentControl}">
<TextBlock x:Name="Number" Text="{Binding Number}"/>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding IsRemoved}" Value="True">
<Setter TargetName="Number" Property="TextBlock.TextDecorations" Value="{StaticResource RedStrikethrough}"/>
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Label.Style>
</Label>