📜  更改图像源 wpf - C# (1)

📅  最后修改于: 2023-12-03 15:40:11.870000             🧑  作者: Mango

更改图像源 wpf - C#

WPF是一种用于创建窗口和用户界面的技术。在WPF中,图像通常是通过Image元素添加到用户界面中的。本文将介绍如何通过C#代码更改WPF中Image元素的图像源。

基本方法

首先,需要获取Image元素的引用。这可以通过在XAML中设置Name属性来完成。例如:

<Image Name="myImage" Source="/myProject;component/Images/myImage.png" />

然后,可以使用下面的C#代码获取该元素的引用:

var image = this.FindName("myImage") as Image;

其中,this表示当前窗口,FindName方法将查找具有指定名称的元素,并将其转换为Image类型。

更改图像源可以直接改变Source属性:

image.Source = new BitmapImage(new Uri("/myProject;component/Images/otherImage.png", UriKind.Relative));
从文件加载图像

如果要从文件中加载图像,可以调用BitmapImage的构造函数,如下所示:

var bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.UriSource = new Uri(@"C:\path\to\image.png");
bitmapImage.EndInit();
image.Source = bitmapImage;

其中,BeginInitEndInit方法用于开始和结束初始化过程。

从资源中加载图像

如果要从资源中加载图像,需要将图像添加到项目资源中。可以在项目资源文件夹中创建一个文件夹,并将图像文件添加到其中。然后,在资源文件夹中右键单击该图像文件,选择属性,将生成操作更改为嵌入的资源。

现在,可以通过以下代码从资源中加载图像:

var bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.StreamSource = Application.GetResourceStream(new Uri("/myProject;component/Resources/image.png", UriKind.Relative)).Stream;
bitmapImage.EndInit();
image.Source = bitmapImage;

其中,Application.GetResourceStream方法用于获取与指定Uri相对应的资源文件的流,BeginInitEndInit方法用来初始化BitmapImage实例。

结论

通过上述内容,您应该可以轻松地更改WPF中Image元素的图像源了。无论是从文件还是从资源中,都可以使用简单的C#代码加载图像。