c# – 以编程方式将图像添加到StackPanel

前端之家收集整理的这篇文章主要介绍了c# – 以编程方式将图像添加到StackPanel前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试以编程方式生成StackPanel并将图像添加到StackPanel.不知怎的,我得到一个空的StackPanel.我没有看到我的代码有任何问题,它没有抛出任何异常:
  1. StackPanel Sp = new StackPanel();
  2. Sp.Orientation = Orientation.Horizontal;
  3.  
  4. Image Img = new Image();
  5. BitmapImage BitImg = new BitmapImage(new Uri(
  6. "/MyProject;component/Images/image1.png",UriKind.Relative));
  7. Img.Source = BitImg;
  8.  
  9. Sp.Children.Add(Img);

[编辑]

我尝试了另一种方式添加图像,它的工作原理.它引起了我的兴趣,因为它们在我看来基本上是一样的:

以下代码WORKS(显示图片):

  1. Image Img = new Image();
  2. Img.Source = new BitmapImage(new Uri(
  3. "pack://application:,/MyProject;component/Images/image1.png"));

以下代码不起作用(图像丢失):

  1. Image Img = new Image();
  2. BitmapImage ImgSource = new BitmapImage(new Uri(
  3. "pack://application:,/MyProject;component/Images/image1.png",UriKind.Relative));
  4. Img.Source = BitImg;

他们为什么不同?

解决方法

  1. Img.Source = new BitmapImage(new Uri(
  2. "pack://application:,/MyProject;component/Images/image1.png"));

默认情况下使用UriKind.Absolute而不是UriKind.Relative

如果您希望用户UriKind.Relative – URI应采用不同的格式.看看MSDN

猜你在找的C#相关文章