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

时间:2012-12-06 02:55:13

标签: c# wpf xaml

我正在做一个基本的练习项目,它包含一个路灯,只需按一下按钮,灯光/图像就会改变颜色。在设计时我可以清楚地看到我的所有三个图像,但在运行时它们都不会出现。我搜索了谷歌的地狱,我跟着三个不同的例子,但没有什么可行。

这是我目前在三个图像的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"/>

现在这是我的C#代码

private void btnGreen_Click(object sender, RoutedEventArgs e)
    {
    Image myImage = new Image();
    myImage.Width = 227;
    BitmapImage myBitmapImage = new BitmapImage();
    myBitmapImage.BeginInit();
    myBitmapImage.UriSource = new Uri(@"G:\Users\Jason\Documents\C# Projects\WPF\stopLightDemo\stopLightDemo\images\Go.png");
    myBitmapImage.DecodePixelWidth = 227;
    myBitmapImage.EndInit();
    myImage.Source = myBitmapImage;
    }

    private void btnYellow_Click(object sender, RoutedEventArgs e)
    {

    }

    private void btnRed_Click(object sender, RoutedEventArgs e)
    {

    }

    private void btnClose_Click(object sender, RoutedEventArgs e)
    {
        this.Close();
    }
}
}

我可能做错了什么????

谢谢!!!

2 个答案:

答案 0 :(得分:0)

如果您有来源的图片;

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

答案 1 :(得分:0)

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

其次,在btnGreen_Click处理程序中,您创建一个新的Image控件并设置其Source属性,但是您永远不会将其添加到任何容器控件中。因此它无法显现。