我有一个包含一些项目的列表框。当一个项目被选中时,我想改变 UserControlButton 的背景颜色。
我怎样才能做到这一点?
<Window.Resources>
<Style x:Key="ListBoxItemStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
</Style>
</Window.Resources>
<Border x:Name="UserScrollContainer">
<ListBox x:Name="UserContainer" ItemsSource="{Binding allUserViewModel.Users}"
Background="Transparent"
HorizontalContentAlignment="Stretch"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
ScrollViewer.VerticalScrollBarVisibility="Visible"
BorderThickness="0" Margin="0" Padding="0"
ItemContainerStyle="{DynamicResource ListBoxItemStyle}">
<ListBox.ItemTemplate>
<DataTemplate>
<local:UserControlButton x:Name="UserControlButton" />
// Change background color depending if it is selected
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Border>
编辑
我知道我可以添加如下内容:
<Style x:Key="ListBoxItemStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Background" Value="Lightblue"/>
<Style.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter Property="Background" Value="Red"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Background" Value="Yellow"/>
</Trigger>
</Style.Triggers>
</Style>
但后来我得到了这个结果:
我需要更改用户控件的背景,而不是列表框项的背景。