Je sais que la question semble un peu étrange, mais je voudrais changer l'opacité de tous les éléments non sélectionnés dans un ItemsControl. En d'autres termes, je voudrais rendre plus "visible" l'élément sélectionné, en montrant les autres éléments plus "obfusqués".Dans ItemsControl, comment puis-je modifier l'opacité de tous les éléments non sélectionnés?
J'ai un contrôle personnalisé "MyCustomControl" dérivé de ItemsControl, où chaque élément est une instance d'une classe "MyObject".
J'ai créé un style pour mon contrôle personnalisé où j'ai défini ItemTemplate comme une propriété Image with Source liée à la propriété "LargeImage" de "MyObject". Voici le problème. Quand je sélectionne un objet, je voudrais définir l'opacité de l'autre élément, mais je n'ai pas trouvé de solution!
Voici mon (simplifié) code XAML:
<Style TargetType="{x:Type MyCustomControl}" x:Key="MyStyle">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ui:MyCustomControl}">
<Border Height="{TemplateBinding Height}" Width="Auto" Background="{TemplateBinding Background}">
<ItemsPresenter VerticalAlignment="Center" IsHitTestVisible="True"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<Grid>
<Button>
<Image Source="{Binding Path=LargeImage}" Stretch="Uniform"/>
</Button>
</Grid>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>