Это должно быть довольно простым, но я не могу понять, что это правильно. У меня есть коллекция System.Windows.Controls.Image
. Когда я выбираю один из них, я хотел бы, чтобы все остальные получили непрозрачность 0.5
. Я использую MVVM, и логика этого (поиск выбранного изображения и установка его как Enabled
) выполняется в ViewModel
и работает. Поэтому в основном это работает:Установить непрозрачность изображения с помощью DoubleAnimation
<Image Grid.Row="0" Source="{Binding ItemImage}" IsEnabled="{Binding ItemImageEnabled}">
<Image.Style>
<Style TargetType="Image">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" Value="0.5"/>
</Trigger>
<Trigger Property="IsEnabled" Value="True">
<Setter Property="Opacity" Value="1.0"/>
</Trigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
Теперь я хотел бы непрозрачность сдвигая анимировать, угасание его от 1.0
до 0.5
, когда не выбран образ, и выцветание от 0.5
до 1.0
, когда она есть. Я бы подумал, что это будет работать:
<Image Grid.Row="0" Source="{Binding ItemImage}" IsEnabled="{Binding ItemImageEnabled}">
<Image.Style>
<Style TargetType="Image">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity" From="1" To="0.5" BeginTime="0:0:0" Duration="0:0:1"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
<Trigger Property="IsEnabled" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity" From="0.5" To="1" BeginTime="0:0:0" Duration="0:0:1"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
</Style.Triggers>
</Style>
</Image.Style>
... Но это не
Кто-нибудь есть какие-либо идеи. Любая помощь будет принята с благодарностью. Заранее спасибо.
Perfect - работает как шарм. Большое спасибо – Viking
Это аккуратный подход, я собирался пойти, чтобы он сделал шаблон RadioButton, поэтому только один из них можно было выбрать за один раз. +1 –