我的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样式触发器可以这样做吗?
发布评论