stackpanel内的图像未显示

时间:2012-08-10 17:07:14

标签: wpf c#-4.0 stackpanel

我在gridview单元格中动态创建stackpanel并将图像控件放在stackpanel中,但在窗口上只有空白区域,而不是图像
这就是我在做什么

StackPanel Stkpnl = new StackPanel();

Image BgImg = new Image();
BitmapImage Img = new BitmapImage(new Uri(
    "Images/cellbg.png", UriKind.Relative));
BgImg.Source = Img ;

Stkpnl.Children.Add(BgImg );

3 个答案:

答案 0 :(得分:2)

您需要使用Pack URI。见https://stackoverflow.com/a/1651397/486660

如果您对 包URI的外观有疑问,请暂时将Image控件添加到WPF页面,然后转到Source属性并单击“...”按钮并导航到您的图像。该属性的文本框中将包含Pack URI。

答案 1 :(得分:0)

您的代码似乎是正确的,您是否检查过该文件夹中存在的图像或相对路径是否正确,如果您之后将此图像添加到图像文件夹中 必须将图像的“构建动作”设置为“资源”。右键单击解决方案资源管理器中的图像,而不是设置此属性。

你也应该检查这个问题

Setting WPF image source in code

答案 2 :(得分:0)

StackPanel Stkpnl = new StackPanel();
Image BgImg = new Image();    
String packuri = "pack://application:,,,/yourassemblyname;component/cellbg.png";
BgImg.Source = new ImageSourceConverter().ConvertFromString(packuri) as ImageSource;

Stkpnl.Children.Add(BgImg );

PS:要在visual studio 2012中查找程序集名称,请转到菜单栏中的“项目” - > “设置属性” - >应用程序。