У меня есть два элемента TextBlock Run
с разными цветами (один из них явно установлен на элементе). Я хочу, чтобы они оба меняли цвет на красный, когда значение Foo
равно нулю, используя тот же стиль. Возможно ли это как-то? Я бы предпочел не дублировать стиль. Это то, что я хочу работать:Свойство переопределения WPF, указанное на элементе из триггера стиля
<Style x:Key="ForegroundStyleTrigger" TargetType="Run">
<Style.Triggers>
<DataTrigger Binding="{Binding Foo}" Value="0">
<Setter Property="Foreground" Value="{StaticResource RedBrush}"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
<TextBlock>
<Run Text="{Binding Foo, Mode=OneWay}"
Style="{StaticResource ForegroundStyleTrigger}"/>
<Run Text="{Binding Bar, Mode=OneWay}"
Foreground="Blue"
Style="{StaticResource ForegroundStyleTrigger}"/>
</TextBlock>
Но так как локально определенный цвет (один определенные на элементе) имеет приоритет над триггерами типа, ничего не происходит, и текст остается голубым для этого текста перспективы.
Вопрос: Могу ли я переопределить цвет TextBlocks с ресурсом стиля? Если нет, как достичь ожидаемого результата без дублирования ресурса стиля?
Это также правильный ответ, я просто потратил 10 минут на решение, какой из них следует пометить как правильно. Другой был для меня чуть более ясным. в любом случае, спасибо! – micnil
Спасибо. Тем не менее я бы посоветовал вам привыкнуть к правильным техническим терминам, а не к необузданному языку - имея в виду уровень организаций, в которых прежде всего используется WPF, вам будут заданы вопросы, используя эту точную терминологию при проведении интервью с ними. – toadflakz