WPF Image控件 Source绑定路径方法

最近在做WPF项目时,要通过Image 来添加图片显示,使用其ImageSource属性来设置image图片的路径进行绑定。

最初用的绝对路径进行绑定,没有什么问题,只要将图片所在的绝对路劲复制粘贴就好了。

但是,当整个项目的路径发生了变化(将图片放在项目工程目录内的)时,就有问题了,需要手动更改绝对路径。

后面将其改为相对路径,就解决了这个问题:

首先要将图片添加到项目中:

然后在Xaml前台添加路径绑定:ImageSource="/WPFLoginTestDemo;component/timg.jpg"

 

/WPFLoginTestDemo;  :这是你的工程文件的名称,或者说是你的图片对应的程序集的名称

component :component是固定前缀,是必须的,我一开始不知道,习惯的用ImageSource="../WPFLoginTestDemo/timg.jpg"的写法,这样不会写时不会报错,但是在启动调试到这里时就会报异常

/timg.jpg :这是图片的相对路径(相对于程序的路径),当前可执行程序目录一般在 …/bin/Debug(Release)/XXX.exe

有的时候这样做会在程序的生成目录下复制一份该图片,我们只需要按下面设置图片的属性就可以不复制了。

另:相对路径要求比较严格,C#中指定Source时图片的“生成操作”属性必须是“Resource”

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
WPF中,你可以使用数据绑定来将Image控件与数据源进行关联。这样你就可以动态地显示不同的图片,而无需在代码中手动更改图片路径。 首先,你需要创建一个数据源,例如一个ViewModel类。在这个类中,你可以定义一个属性,用于存储图片的路径: ```csharp public class ViewModel : INotifyPropertyChanged { private string _imagePath; public string ImagePath { get { return _imagePath; } set { _imagePath = value; OnPropertyChanged(nameof(ImagePath)); } } // 实现INotifyPropertyChanged接口的代码... } ``` 接下来,在XAML中,你需要将Image控件Source属性与ViewModel的ImagePath属性进行绑定。你可以使用Binding语法来实现: ```xaml <Image Source="{Binding ImagePath}" Width="100" Height="100" /> ``` 在这个例子中,我们将Image控件Source属性绑定到ViewModel的ImagePath属性。 最后,在代码中,你需要将ViewModel设置为界面的数据上下文(DataContext)。这样,WPF框架就会自动将界面上的控件与ViewModel进行绑定。你可以在代码中添加以下代码: ```csharp public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); ViewModel viewModel = new ViewModel(); viewModel.ImagePath = "path/to/your/image.png"; // 设置初始图片路径 DataContext = viewModel; } } ``` 在这个例子中,我们创建了一个ViewModel实例,并将其设置为MainWindow的DataContext。 这样,当你更改ViewModel的ImagePath属性时,界面上的Image控件Source属性也会自动更新,从而显示新的图片。 希望这能帮助到你!如果还有其他问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值