1

我需要在运行时根据RadioButton用户单击更改背景图像。我在 Visual Studio 的 WPF 项目中执行此操作,我需要将代码放在Checkedxaml.cs 文件中的事件中

我有一个名为 imgBackground 的图像控件,它的源集合中有 6 个图像,这些图像列在解决方案资源管理器的图像文件夹中。

我试过了:

this.imgBackground.Source = "filename.jpg";

带引号和不带引号,以及各种路径(我尝试了太多不同的变体,无法在此处全部列出)并且没有任何效果 - 我尝试的所有内容都在编辑器中出现错误,甚至在我尝试构建和运行任何东西(给出的错误取决于我当时正在尝试的内容)。

4

1 回答 1

2

如果您使用相对路径作为文件名,例如

this.imgBackground.Source = "filename.jpg";

那么这些文件必须与程序的 .exe 位于同一目录中。一种解决方法是使用绝对路径,例如

this.imgBackground.Source = @"C:\MyFolder\MyProject\filename.jpg";

或者,甚至进一步使用 WPF 的打包机制或将您的图像作为资源打包到您的程序集中。看看这个线程。

编辑:

为了您的澄清:

Source-property 需要一个System.Windows.Media.ImageSource-object,您必须提供它。像这样做:

BitmapImage bi3 = new BitmapImage();
bi3.BeginInit();
bi3.UriSource = new Uri("filename.jpg", UriKind.Relative);
bi3.EndInit();
this.imgBackground.Source = bi3;

请在此处参考文档。

于 2013-03-22T08:52:28.010 回答