aviv
aviv

Reputation: 2809

WPF Style Triggers from another control

I have an image that i want to make it when the user hover with mouse over it, another image next to it will be displayed.

The code below, doesn't work:

            <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" />

Any ideas how can i set another control setter property from another control trigger?

10x.

Upvotes: 1

Views: 3001

Answers (1)

Goblin
Goblin

Reputation: 8022

How about like this:

 <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}}" />

and then use this valueconverter for it:

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();
    }
}

Upvotes: 4

Related Questions