Триггеры стиля WPF из другого элемента управления - PullRequest
1 голос
/ 28 июля 2010

У меня есть изображение, которое я хочу сделать, когда пользователь наводит курсор на него, рядом с ним будет отображаться другое изображение.

Код ниже, не работает:

            <Image Source="volumen.png">
                <Image.Style>
                    <Style>
                        <Style.Triggers>
                            <Trigger Property="IsMouseOver" Value="True">
                                <Setter TargetName="bar_volume" Property="Visibility" Value="Visible" />
                            </Trigger>
                        </Style.Triggers>
                    </Style>
                </Image.Style>
            </Image>
            <Image Source="volumen_bar.png" Name="bar_volume" Visibility="Hidden" />

Есть идеи, как мне установить другое свойство установщика элемента управления из другого триггера элемента управления?

10x.

1 Ответ

4 голосов
/ 28 июля 2010

Как примерно так:

 <UserControl.Resources>       
      <local:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter"/>
 </UserControl.Resources>       
 <Image Name="firstImage" Source="volumen.png"/>
 <Image Source="volumen_bar.png" Name="bar_volume" Visibility="{Binding IsMouseOver,ElementName=firstImage, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}" />

, а затем используйте для этого этот преобразователь значений:

public class BoolToVisibilityConverter:IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
         return (bool)value ? Visibility.Visible : Visibility.Hidden;
    }
    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
         throw new NotSupportedException();
    }
}
...