C# 如何在运行时显示或加载图像

C# 如何在运行时显示或加载图像,c#,wpf,xaml,C#,Wpf,Xaml,我只是在做一个基本的实践项目,它能使路灯发光,只要按下一个按钮,灯光/图像就会改变颜色。在设计时,我可以清楚地看到所有三个图像,但在运行时,它们都不会出现。我从谷歌搜索了三个不同的例子,但都不管用 这是我在xaml代码中为这三幅图像编写的代码 <Image HorizontalAlignment="Left" Height="299" Margin="25,10,0,0" VerticalAlignment="Top" Width="227" Sou

我只是在做一个基本的实践项目,它能使路灯发光,只要按下一个按钮,灯光/图像就会改变颜色。在设计时,我可以清楚地看到所有三个图像,但在运行时,它们都不会出现。我从谷歌搜索了三个不同的例子,但都不管用

这是我在xaml代码中为这三幅图像编写的代码

<Image HorizontalAlignment="Left" Height="299" Margin="25,10,0,0"                     VerticalAlignment="Top" Width="227" Source="images/Stop.png" Name="imgStop"/>
<Image HorizontalAlignment="Left" Height="299" Margin="25,10,0,0" VerticalAlignment="Top" Width="227" Source="images/Caution.png" Name="imgCaution"/>
<Image HorizontalAlignment="Left" Height="299" Margin="25,10,0,0" VerticalAlignment="Top" Width="227" Source="images/Caution.png" Name="imgGo"/>
我可能做错了什么


谢谢你

如果你有来源的图片

myBitmapImage.UriSource = new Uri(@"/stopLightDemo;component/images/Go.png",UriKind.Relative);

首先,当XAML使用相对图像URI(如
images/Caution.png
)时,必须确保相应的图像文件位于Visual Studio项目中名为
images
的文件夹中,并且其设置为
Resource


其次,在
btnGreen\u单击
处理程序中,您创建了一个新的图像控件并设置了其源属性,但从未将其添加到任何容器控件中。因此它无法显示。

您的xaml是否应该与
imgCaution
imgGo
具有相同的图像?有错误信息吗?没有,对于imgCaution,我有一个带有黄色警示灯的图像,因为imgGo是绿灯,红色是红灯。在“设计”视图中,我将它们堆叠在一起,顺便说一句,当应用程序首次加载时,我会在运行时显示这些图像,但同时会显示所有三个图像,因此您只能看到堆叠在所有三个图像顶部的第一个图像。。这就是我将xaml更改为的内容。我将代码引用更改为包格式,例如。源代码=”pack://application:,,,/stopLightDemo;component/images/Stop.png“在C#中,我有myBitmapImage.UriSource=newURI(@”pack://application:,,,/stopLightDemo;组件/images/Stop.png“,UriKind.Relative);图像自动加载,但我无法让事件处理程序在按下按钮切换到相应图像的情况下工作这是我使用数据绑定的情况吗?如果在xaml或C#中是这样做的话?不,这里不需要数据绑定。
myBitmapImage.UriSource = new Uri(@"/stopLightDemo;component/images/Go.png",UriKind.Relative);