Wpf 列表框在选中某个项目时更改未选中项目的不透明度

Wpf 列表框在选中某个项目时更改未选中项目的不透明度,wpf,xaml,triggers,listbox,styles,Wpf,Xaml,Triggers,Listbox,Styles,我有一个定义了DataTemplate、Style和ItemContainerStyle的列表框 此列表框包含SelectionMode=“Single” 最初,所有项目都具有Opacity=“0.7”,当选择项目时,我将其设置为Opacity=“1” 但我还需要使用Opacity=“0.2”创建所有其他(未选中的)项目,直到选中的项目被取消选中 简而言之:[Initial(Opacity=0.7)]->[ItemSelected={(SelectedItem:Opacity=1),(所有

我有一个定义了DataTemplate、Style和ItemContainerStyle的列表框

此列表框包含SelectionMode=“Single”

最初,所有项目都具有
Opacity=“0.7”
,当选择项目时,我将其设置为
Opacity=“1”


但我还需要使用
Opacity=“0.2”
创建所有其他(未选中的)项目,直到选中的项目被取消选中

简而言之:[Initial(Opacity=0.7)]->[ItemSelected={(SelectedItem:Opacity=1),(所有未选中的项:Opacity=0.2)}]->[ItemSelected(SelectedItem==null)=(Opacity=0.7)]


谢谢你的建议和想法

触发:选择在那里&自己没有被选择

这应该做到:

<Style TargetType="ListBoxItem">
    <Setter Property="Opacity" Value="0.7" />
    <Style.Triggers>
        <MultiDataTrigger>
            <MultiDataTrigger.Conditions>
                <Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}"
                        Value="false" />
                <Condition
                        Binding="{Binding SelectedItems.Count, RelativeSource={RelativeSource AncestorType=ListBox}}"
                        Value="1" />
            </MultiDataTrigger.Conditions>
            <Setter Property="Opacity" Value="0.2" />
        </MultiDataTrigger>
        <Trigger Property="IsSelected" Value="True">
            <Setter Property="Opacity" Value="1" />
        </Trigger>
    </Style.Triggers>
</Style>

<Style TargetType="ListBoxItem">
    <Setter Property="Opacity" Value="0.7" />
    <Style.Triggers>
        <MultiDataTrigger>
            <MultiDataTrigger.Conditions>
                <Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}"
                        Value="false" />
                <Condition
                        Binding="{Binding SelectedItems.Count, RelativeSource={RelativeSource AncestorType=ListBox}}"
                        Value="1" />
            </MultiDataTrigger.Conditions>
            <Setter Property="Opacity" Value="0.2" />
        </MultiDataTrigger>
        <Trigger Property="IsSelected" Value="True">
            <Setter Property="Opacity" Value="1" />
        </Trigger>
    </Style.Triggers>
</Style>