2013-03-22 54 views
1

我需要在运行时更改背景图像,基于用户单击哪个RadioButton。我在Visual Studio中的WPF项目这样做,我需要把代码中Checked事件在xaml.cs文件基于RadioButton选择运行时更改图像

我有一个名为imgBackground Image控件,其来源收集6个图像,它们在解决方案资源管理器的Images文件夹中列出。

我已经试过:

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

既没有引号,并用不同的路径(我已经尝试过许多不同的变化在这里一一列举),并没有什么作品 - 我什么都尝试在编辑器中给出错误之前,我甚至尝试构建和运行任何东西(给出的错误取决于我在尝试的时间)。

+0

那么,什么是行不通的。切换或显示任何图像?您可以使用设计器+属性选择图像。然后看看源代码。 – 2013-03-22 08:49:48

+0

对不起,我应该更清楚了 - 我甚至在编译和运行任何东西之前,都会在编辑器中发现错误。我编辑了原文,以反映这一点。谢谢! :-) – Erica 2013-03-22 08:56:23

+1

显示1次尝试并发送错误消息 – 2013-03-22 09:00:55

回答

2

如果使用相对路径,文件名类似

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

然后将这些文件必须在同一目录下的程序的.exe文件。 一种解决方法是使用绝对路径一样

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

或者,更进一步使用WPF的包装机制或包你的图像作为资源到您的装配。看看this线程。

编辑:

为您澄清:

Source - 属性要求的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; 

请参考this文档在这里。

+0

它们在项目的Images文件夹中。我如何从那里访问他们? 我应该澄清(我也编辑了原文,以反映这一点),它甚至不在.exe阶段 - 我在编辑器中发现错误,甚至在我尝试构建和运行之前任何东西。 – Erica 2013-03-22 08:59:29

+0

那么,你需要指定图像的路径。如果有图片文件夹,请使用'this.imgBackground.Source = @“images \ filename.jpg”;' – 2013-03-22 09:01:20

+1

@Erica,需要注意的一点是,即使它们位于图片文件夹中,程序也会显示在运行时与二进制文件夹的关系(即它将在​​bin/images而不是projectdir/images中查找)。您可以通过在Visual Studio中右键单击图像来解决此问题,单击“属性”并将“复制到输出目录”设置为true。这将确保他们每次构建时都被复制到bin/images中。 – 2013-03-22 09:07:25