【问题标题】:Image inside stackpanel is not getting displayed堆栈面板内的图像未显示
【发布时间】:2012-08-10 17:07:14
【问题描述】:

我在 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 );

【问题讨论】:

  • 您是否尝试过调试以查看是否已加载 Img - 您是否已将堆​​栈面板添加到可视化树中?

标签: wpf c#-4.0 stackpanel


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    你也应该检查这个问题

    Setting WPF image source in code

    【讨论】:

      【解决方案3】:
      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 中查找程序集名称,请转到菜单栏中的“项目”->“设置属性”->应用程序。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-03-22
        • 2012-12-07
        • 1970-01-01
        • 1970-01-01
        • 2012-03-31
        • 2011-06-19
        • 2016-10-18
        • 2020-04-16
        相关资源
        最近更新 更多