我在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 );
答案 0 :(得分:2)
您需要使用Pack URI。见https://stackoverflow.com/a/1651397/486660
如果您对 包URI的外观有疑问,请暂时将Image
控件添加到WPF页面,然后转到Source
属性并单击“...”按钮并导航到您的图像。该属性的文本框中将包含Pack URI。
答案 1 :(得分:0)
您的代码似乎是正确的,您是否检查过该文件夹中存在的图像或相对路径是否正确,如果您之后将此图像添加到图像文件夹中 必须将图像的“构建动作”设置为“资源”。右键单击解决方案资源管理器中的图像,而不是设置此属性。
你也应该检查这个问题
答案 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中查找程序集名称,请转到菜单栏中的“项目” - > “设置属性” - >应用程序。