none
关于 Image.Source 的问题 RRS feed

  • 问题

  • 我在第一次 Image.Source = BitmapImage; 时能正常显示,但是重复赋值时Image上的图片不变,为什么呢?

    就是说,我的赋值语句不变,但硬盘上的图片变了。而且硬盘上图片 的文件名称也不变。

     

    2012年2月3日 7:36

答案

全部回复

  • 贴代码吧,看不懂啊
    Keep Moving.
    2012年2月3日 8:55
  •  

     

     

    string imgPath = Environment.CurrentDirectory + "\\zp.bmp"; 
    if (File.Exists(imgPath)) 
    { 
      BitmapImage bi3 = new BitmapImage();
      bi3.BeginInit();
      bi3.CacheOption = BitmapCacheOption.OnLoad;
      bi3.UriSource = new Uri(imgPath, UriKind.Absolute);             bi3.EndInit(); 
      bi3.Freeze(); 
      Image.Source = bi3; 
    }

     

    第一次运行时很好,第二次读时,还是第一次读的那个图片,真是邪门了。

    2012年2月3日 11:40
  • 直接

    Image img = new Image() { Source = new BitmapImage(new Uri(@"D:/1.jpg",UriKind.RelativeOrAbsolute)) };

    这样写不行么?

     


    Hero
    2012年2月3日 13:09
  •         bi3.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
    加上这个
    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us
    2012年2月6日 8:33
    版主
  • 加上bi3.EndInit(); 你的代码可以正常工作


    Sheldon _Xiao[MSFT]
    MSDN Community Support | Feedback to us
    Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年2月6日 14:56
    版主
  • 没看到 sorry


    Sheldon _Xiao[MSFT]
    MSDN Community Support | Feedback to us
    Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年2月7日 4:02
    版主
  • 如果你要用相对于exe文件目录的资源要这样写相对地址

    glassBG.Source = new BitmapImage(new Uri("pack://SiteOfOrigin:,,,/view/menuImg/glassBG.png"));

    其中view目录和exe在同一目录。

    有关pack,详情请看:http://msdn.microsoft.com/zh-cn/library/aa970069.aspx

    2012年2月10日 2:44