Wpf 列表框在选中某个项目时更改未选中项目的不透明度
我有一个定义了DataTemplate、Style和ItemContainerStyle的列表框 此列表框包含SelectionMode=“Single” 最初,所有项目都具有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),(所有
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>