WPF 鼠标在图片Image上悬停时切换更改设置图片源Source

简介: // 无效的写法,图片不会被切换 ...
// 无效的写法,图片不会被切换

 <Image Margin="0,0,0,0"   Width="50" Height="50" Source="1.png"   >
            <Image.Resources>
                <Style TargetType="{x:Type Image}">
                    <Style.Triggers>
                        <Trigger Property="IsMouseOver" Value="True"> 
                            <Setter Property="Cursor" Value="Hand"/>
                            <Setter Property="Source" Value="2.png"/>
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </Image.Resources>
</Image>
//解决方案:


        <Image Margin="0,0,0,0"   Width="50" Height="50">
            <Image.Resources>
                <Style TargetType="{x:Type Image}">
                    <Setter Property="Source" Value="1.png"/>
                    <Style.Triggers>
                        <Trigger Property="IsMouseOver" Value="True"> 
                            <Setter Property="Cursor" Value="Hand"/>
                            <Setter Property="Source" Value="2.png"/>
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </Image.Resources>
        </Image>

 

<Window.Resources>
<local:SwitchSourceConverter x:Key="SwitchSourceConverter" />
</Window.Resources>

 <Image>
            <Image.Resources>
                <Style TargetType="{x:Type Image}">
                    <Setter Property="Source" Value="1.png" />
                    <Setter Property="Width" Value="100" />
                    <Setter Property="Height" Value="150" />
                    <Style.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="Cursor" Value="Hand" />
                            <Setter Property="Width" Value="170" />
                            <Setter Property="Height" Value="200" />
                            <Setter Property="Source" Value="{Binding Converter={StaticResource SwitchSourceConverter}}" />
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </Image.Resources>
        </Image>
  public class SwitchSourceConverter : IValueConverter
    {

        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            //注意 图片不存在或者出错,会造成不停闪烁,因为鼠标一直在图片上,图片则不停的进行更改Source
      var path = "3.png";
            var  uri = new Uri(path, UriKind.RelativeOrAbsolute);
            //返回以下几种方式都可以
            //return new BitmapImage(uri);
            return path;
            return uri; 
            BitmapImage image = new BitmapImage();
            image.BeginInit();
            image.UriSource = new Uri(path, UriKind.RelativeOrAbsolute); 
            image.EndInit();
            return image;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }

 

目录
相关文章
|
6月前
C#WPF 图片在显示时没有问题,但在运行时图片显示不出来的解决
选中项目,点击右上角的显示全部文件按钮,会将默认隐藏的文件显示出来,选中所需图片,右键,添加到项目,然后选择图片查看属性,生成操作选择resource。完毕。本人目前的解决方案。
258 41
C#WPF 图片在显示时没有问题,但在运行时图片显示不出来的解决
|
8月前
|
C#
WPF技术之Image控件
Image控件可以用于加载和显示各种图像格式,包括位图(Bitmap)、矢量图(Vector)、矢量文档(XPS)等。它可以加载本地文件系统中的图像,或者从网络上下载图像。
224 0
WPF界面异常:未将对象引用设置到对象实例
WPF界面异常:未将对象引用设置到对象实例
WPF TreeView设置所有节点默认展开
WPF TreeView设置所有节点默认展开
WPF中给TextBox/TextBlock设置提示文本
WPF中给TextBox/TextBlock设置提示文本
WPF中给TextBox/TextBlock设置提示文本
|
前端开发 C# Windows
WPF鼠标、键盘、拖拽事件、用行为封装事件
本文主要介绍了WPF中常用的鼠标事件、键盘事件以及注意事项,同时使用一个案例讲解了拓展事件。除此之外,本文还讲述如何用行为(Behavior)来封装事件。
|
Java C#
C# WPF Image Source 频繁切换导致垃圾回收不及时导致内存占用不断增加的问题
C# WPF Image Source 频繁切换导致垃圾回收不及时导致内存占用不断增加的问题
2233 0
|
C# 索引 容器
WPF ListView控件设置奇偶行背景色交替变换以及ListViewItem鼠标悬停动画
原文:WPF ListView控件设置奇偶行背景色交替变换以及ListViewItem鼠标悬停动画 利用WPF的ListView控件实现类似于Winform中DataGrid行背景色交替变换的效果,同时增加鼠标的悬停效果。
1726 0
|
C#
设置WPF输入框焦点
原文:设置WPF输入框焦点 在WPF中设置控件键盘焦点 Keyboard.Focus(/*控件名称*/);
1263 0