基于单选按钮选择在运行时更改图像

时间:2013-03-22 08:45:12

标签: c# wpf xaml imagesource

我需要在运行时根据用户点击的RadioButton更改背景图片。我在Visual Studio的WPF项目中这样做,我需要将代码放在xaml.cs文件中的Checked事件中

我有一个名为imgBackground的Image控件,其Source集合中有6个图像,这些图像列在Solution Explorer的Images文件夹中。

我试过了:

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

有没有引号,有不同的路径(我尝试了太多不同的变体来列出它们全部在这里)并且没有任何作用 - 我尝试过的所有内容都在编辑器中出现错误,在我尝试之前构建和运行任何东西(给出的错误取决于我当时正在尝试的内容)。

1 个答案:

答案 0 :(得分:2)

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

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

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

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

或者,甚至进一步使用WPF的打包机制或将图像作为资源打包到装配中。查看this主题。

编辑:

您的澄清:

Source - 属性需要System.Windows.Media.ImageSource - 对象,您必须提供该对象。 这样做:

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

请参阅此处的this文档。