【发布时间】:2014-09-10 06:21:35
【问题描述】:
正如 WPF 经常发生的那样,我可能会以错误的方式处理事情,但我有以下情况:
我想根据 DataTrigger 应用样式,但您不能从样式内部更改样式:
<Button>
<Button.Style>
<Style BasedOn="SomeStyle">
<Style.Triggers>
<DataTrigger ...>
<Setter Property="Style" Value="OtherStyle" /> <---- NO CAN DO
确实合乎逻辑,但我想避免重复 same 设置器,只是因为我的触发条件发生了变化:
<Button>
<Button.Style>
<Style BasedOn="SomeStyle">
<Style.Triggers>
<DataTrigger Binding="{Binding X}" Value="Condition1">
<Setter Property="A" Value="1" />
<Setter Property="B" Value="1" />
<etc...>
(...)
<Button>
<Button.Style>
<Style BasedOn="SomeStyle">
<Style.Triggers>
<DataTrigger Binding="{Binding X}" Value="Condition2">
<Setter Property="A" Value="1" />
<Setter Property="B" Value="1" />
<etc...>
还有什么东西可以让我把DataTrigger放进去,这样我就可以从里面改变样式了吗?或者另一种方式:避免重复样式信息?
【问题讨论】:
-
您想在两个不同的条件下应用相同的设置器集吗?纠正我我的看法不同。更改样式将无济于事,因为一旦更改,它将立即恢复。最后,您可以使用数据触发器来更改所需元素的父元素样式中的元素样式。
-
@pushpraj,是的,同样的二传手。我会尝试更新