WPF 动态更换图片路径 您所在的位置:网站首页 template/6/images/bt_404.jpg WPF 动态更换图片路径

WPF 动态更换图片路径

2023-07-28 04:48| 来源: 网络整理| 查看: 265

wpf中动态修改图片路径,其实很简单,有个小伙伴有疑问,绑定了source,为什么不能显示图片呢。。。

通过绑定,修改图片路径,动态显示图片,效果如下:

图片支持本地路径和网络路径,下面就来看看如何做吧:

首先,在项目中创建一个images文件夹,将默认图片复制到其中命名为404.jpg

然后:

创建一个窗口,xaml代码如下:

有一个图片,和一个文本框,绑定了同一个string类型的ImagePath属性,Source使用了一个转换器。

窗体后台代码如下:

using System; using System.ComponentModel; using System.Globalization; using System.Windows; using System.Windows.Data; using System.Windows.Media.Imaging; namespace WxDemo { public partial class ChageImageDemo : Window, INotifyPropertyChanged { public ChageImageDemo() { InitializeComponent(); DataContext = this; } public event PropertyChangedEventHandler PropertyChanged; public void OnPropertyChanged(string name) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); } private string _imagePath= @"D:\bizhi\清纯\10-1.jpg"; public string ImagePath { get { return _imagePath; } set { _imagePath = value; OnPropertyChanged(nameof(ImagePath)); } } } public class StringToBitmapImageConverter : System.Windows.Markup.MarkupExtension, IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { string path = value?.ToString(); if(string.IsNullOrEmpty(path)) return new BitmapImage(new Uri("/images/404.jpg",UriKind.Relative)); try { return new BitmapImage(new Uri(path)); } catch (Exception) { return new BitmapImage(new Uri("/images/404.jpg",UriKind.Relative)); } } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } public override object ProvideValue(IServiceProvider serviceProvider) { return new StringToBitmapImageConverter(); } } }

后台代码里面指定了DataContext,实现了INotifyPropertyChanged接口,并且定义了转换器。

这样就已经 实现我们想要的效果啦:

(文中图片素材,来源于网络,侵删)

如果喜欢,点个赞呗~



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有