我有一个图像,当用户将鼠标悬停在其上时,我想要显示它,将显示旁边的另一个图像。
以下代码不起作用:
<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" />
任何想法如何从另一个控件触发器设置另一个控件setter属性?
10倍。
答案 0 :(得分:4)
这样怎么样:
<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}}" />
然后使用此valueconverter:
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();
}
}