gpt4 book ai didi

wpf - 更改列表框中选定用户控件的背景颜色

转载 作者:行者123 更新时间:2023-12-04 02:09:32 25 4
gpt4 key购买 nike

我有一个包含一些项目的列表框。选择一个项目后,我想更改 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>

但后来我得到了这个结果:

enter image description here

我需要更改用户控件的背景,而不是列表框项的背景。

最佳答案

您有多种方法可以解决您的问题。我将在这里描述其中的一个。

你可以定义<Style />在你的 <UserContorl /> , 为了反射(reflect) ListBoxItem.IsSelected属性:

<DataTemplate>
<local:UserControlButton x:Name="UserControlButton">
<local:UserControlButton.Style>
<Style TargetType="{x:Type local:UserControlButton}">
<Setter Property="Background" Value="Lightblue"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ListBoxItem}}" Value="true">
<Setter Property="Background" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</local:UserControlButton.Style>
</local:UserControlButton>
</DataTemplate>

关于wpf - 更改列表框中选定用户控件的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19958648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com