Wpf 不同图像和边框背景的样式触发器
我想使用不同的边框背景和不同的图像(每个图像必须使用不同的背景色) 如何更改使用StyleTrigger来执行此操作?(现在它只显示所有图像的红色边框)Wpf 不同图像和边框背景的样式触发器,wpf,triggers,styles,Wpf,Triggers,Styles,我想使用不同的边框背景和不同的图像(每个图像必须使用不同的背景色) 如何更改使用StyleTrigger来执行此操作?(现在它只显示所有图像的红色边框) 谢谢。假设您的绑定正确,您只需在边框中添加类似的样式,即可更新背景属性,并从边框本身删除背景值: <DataTemplate> <Border BorderThickness="1" Width="18" Height="18" CornerRadius="2" BorderBrush="Red">
谢谢。假设您的
绑定
正确,您只需在边框
中添加类似的样式
,即可更新背景
属性,并从边框
本身删除背景
值:
<DataTemplate>
<Border BorderThickness="1" Width="18" Height="18" CornerRadius="2" BorderBrush="Red">
<Border.Style>
<Style TargetType="{x:Type Border}">
<Style.Triggers>
<DataTrigger Binding="{Binding RowData.DataContext.my}" Value="High">
<Setter Property="Background" Value="Green" />
</DataTrigger>
<DataTrigger Binding="{Binding RowData.DataContext.my}" Value="Medium">
<Setter Property="Background" Value="Blue" />
</DataTrigger>
<DataTrigger Binding="{Binding RowData.DataContext.my}" Value="Low">
<Setter Property="Background" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<Image Width="16" Height="16">
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Source" Value="{x:Null}" />
<Style.Triggers>
<DataTrigger Binding="{Binding RowData.DataContext.my}" Value="High">
<Setter Property="Source" Value="/project;component/Images/High.png" />
</DataTrigger>
<DataTrigger Binding="{Binding RowData.DataContext.my}" Value="Medium">
<Setter Property="Source" Value="/project;component/Images/Medium.png" />
</DataTrigger>
<DataTrigger Binding="{Binding RowData.DataContext.my}" Value="Low">
<Setter Property="Source" Value="/project;component/Images/Low.png" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</Border>
</DataTemplate>
试试这个。您已经为图像上的边框指定了BorderBrush红色。。。这就是为什么每个图像都会出现红色边框的原因。。触发器只会更新映像的源。。不是它的border@nit我想知道我必须如何对边框和图像使用触发器?就像你给图像的样式一样。。类似地,您必须将样式触发器应用于边框以更改其边框笔刷和Background@nit你是说我需要两个扳机?我需要合并这些。谢里丹,图像没有背景属性。这就是问题所在。哦,对不起,我没有注意到。。。我们可以设置
边框的背景
。。。我会更新我的答案。
<DataTemplate>
<Border BorderThickness="1" Width="18" Height="18" CornerRadius="2" BorderBrush="Red">
<Border.Style>
<Style TargetType="{x:Type Border}">
<Style.Triggers>
<DataTrigger Binding="{Binding RowData.DataContext.my}" Value="High">
<Setter Property="Background" Value="Green" />
</DataTrigger>
<DataTrigger Binding="{Binding RowData.DataContext.my}" Value="Medium">
<Setter Property="Background" Value="Blue" />
</DataTrigger>
<DataTrigger Binding="{Binding RowData.DataContext.my}" Value="Low">
<Setter Property="Background" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<Image Width="16" Height="16">
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Source" Value="{x:Null}" />
<Style.Triggers>
<DataTrigger Binding="{Binding RowData.DataContext.my}" Value="High">
<Setter Property="Source" Value="/project;component/Images/High.png" />
</DataTrigger>
<DataTrigger Binding="{Binding RowData.DataContext.my}" Value="Medium">
<Setter Property="Source" Value="/project;component/Images/Medium.png" />
</DataTrigger>
<DataTrigger Binding="{Binding RowData.DataContext.my}" Value="Low">
<Setter Property="Source" Value="/project;component/Images/Low.png" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</Border>
</DataTemplate>