mcaisco
27-07-2010, 10:26
So che sembra strano ma ho bisogno di evidenziare l'elemento selezionato di un ItemsControl, agendo sull'opacita' degli altri elementi non selezionati, rendendo questi piu' "offuscati".
Ho un custom control "MyCustomControl" che deriva da ItemsControl i cui item sono delle istanze di una classe "MyObject".
Ho fatto uno stile "MyStyle" per "MyCustomControl" che ridefinisce l'ItemTemplate in modo che diventi una Image la cui proprieta' Source e' in binding con la proprieta' LargeImage del mio oggetto "MyObject".
Quando seleziono un elemento vorrei che gli altri diventassero piu' offuscati, agendo sulla loro "opacity".
Ma non so come fare.
Ecco il mio codice XAML semplificato:
<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>
Ho un custom control "MyCustomControl" che deriva da ItemsControl i cui item sono delle istanze di una classe "MyObject".
Ho fatto uno stile "MyStyle" per "MyCustomControl" che ridefinisce l'ItemTemplate in modo che diventi una Image la cui proprieta' Source e' in binding con la proprieta' LargeImage del mio oggetto "MyObject".
Quando seleziono un elemento vorrei che gli altri diventassero piu' offuscati, agendo sulla loro "opacity".
Ma non so come fare.
Ecco il mio codice XAML semplificato:
<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>