">
请看下面示例中的行"THIS line ####“。
<ListBox Grid.Row="0" x:Name="listBoxServers">
<ListBoxItem HorizontalContentAlignment="Stretch">
<StackPanel>
<TextBlock><Run Text="My computer"/></TextBlock>
<TextBlock Foreground="{DynamicResource {x:Static SystemColors.ControlDarkBrushKey}}">
<TextBlock.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource AncestorType={x:Type ListBoxItem}}}" Value="True">
<Setter Property="TextBlock.Foreground" Value="White" /> <!-- THIS LINE #### How can I get this work? -->
<Setter Property="TextBlock.Background" Value="Blue" /> <!-- This line here for debugging purposes (to show that these really are called) -->
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
<Run Text="localhost"/>
</TextBlock>
</StackPanel>
</ListBoxItem>
</ListBox>
如何让下面的触发器覆盖该值?
(顺便说一句,上面的例子只是压缩的。(在实际应用中,样式在它自己的资源中。)
发布于 2009-10-18 10:43:41
您应该能够使用两个数据触发器来完成此操作,一个用于true,一个用于false。
<TextBlock>
<TextBlock.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource AncestorType={x:Type ListBoxItem}}}" Value="True">
<Setter Property="TextBlock.Foreground" Value="White" />
<Setter Property="TextBlock.Background" Value="Blue" />
</DataTrigger>
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource AncestorType={x:Type ListBoxItem}}}" Value="False">
<Setter Property="TextBlock.Foreground" Value="{DynamicResource {x:Static SystemColors.ControlDarkBrushKey}}" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
<Run Text="localhost"/>
</TextBlock>
发布于 2009-10-18 21:32:27
This post可能会解释为什么当您为该属性分配了一个本地值时,触发器不会触发。
https://stackoverflow.com/questions/1585670
复制相似问题