WPF样式触发器可以这样做吗?

编程入门 行业动态 更新时间:2024-10-26 05:19:01
本文介绍了WPF样式触发器可以这样做吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我的from中有一个datagrid,我使用DataTrigger来设置DataGridCell的前景色以确保它看起来很清晰,就像这样:

There''s a datagrid in my from,and I ues a DataTrigger to set the DataGridCell''s foreground color to ensure that it looks clear,just like this:

<Style TargetType="my:DataGridCell"> <Style.Triggers> <DataTrigger Binding="{Binding Path=State}" Value="0"> <Setter Property="Foreground" Value="Black" /> </DataTrigger> <DataTrigger Binding="{Binding Path=State}" Value="1"> <Setter Property="Foreground" Value="Green" /> </DataTrigger> </Style.Triggers> </Style>

然后我想设置它'' StyleTrigger,以确保它们具有相同的背景和BorderBrush,就像这样:

And then I want to set it''s StyleTrigger,to make sure they have same background and BorderBrush,just like this:

<Style.Triggers > <Trigger Property="IsSelected" Value="True"> <Setter Property="Background" Value="#d4ecff"/> <Setter Property="BorderThickness" Value="0"></Setter> <Setter Property="BorderBrush" Value="#d4ecff"></Setter> </Trigger> </Style.Triggers>

然后我有一个问题,当我选择一个单元格时,单元格前景改变白色因为我没有设置它所以它被设置为默认颜色。 我想实现这个目标:无论选择哪个单元格,单元格背景都会改变(#d4ecff),但前景将是不改变:如果它是绿色,它保持绿色,如果它是黑色,它保持黑色。 我怎么能这样做?谢谢大家帮助我!

but then I have a question,when I selected one cell,the cell foreground change White because I didn''t set it so it been set a acquiescent color. I want to achieve this:whichever cell i select,the cell background will change same(#d4ecff),but the foreground will not change:If it''s Green,it keeps Green and if it''s Black ,it keeps Black. How Can I do this ? thank you everyone helps me!

推荐答案

我认为你可以使用MultiDataTrigger实现这一点对于 IsSelected 属性 (除 DataTrigger 之外状态属性)如下: Hi, I think you can achieve this using a MultiDataTrigger for the IsSelected property (in addition to the DataTrigger for the State property) like so: <MultiDataTrigger> <MultiDataTrigger.Conditions> <Condition Binding="{Binding Path=IsSelected}" Value="True" /> <Condition Binding="{Binding Path=State}" Value="0" /> </MultiDataTrigger.Conditions> <MultiDataTrigger.Setters> <Setter Property="Background" Value="#d4ecff" /> <Setter Property="BorderThickness" Value="0" /> <Setter Property="BorderBrush" Value="#d4ecff" /> <Setter Property="Foreground" Value="Black" /> </MultiDataTrigger.Setters> </MultiDataTrigger> <MultiDataTrigger> <MultiDataTrigger.Conditions> <Condition Binding="{Binding Path=IsSelected}" Value="True" /> <Condition Binding="{Binding Path=State}" Value="1" /> </MultiDataTrigger.Conditions> <MultiDataTrigger.Setters> <Setter Property="Background" Value="#d4ecff" /> <Setter Property="BorderThickness" Value="0" /> <Setter Property="BorderBrush" Value="#d4ecff" /> <Setter Property="Foreground" Value="Green" /> </MultiDataTrigger.Setters> </MultiDataTrigger>

再见,托马斯。

Bye, Thomas.

更多推荐

WPF样式触发器可以这样做吗?

本文发布于:2023-11-06 14:41:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1563974.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:触发器   这样做   样式   WPF

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!