【问题标题】:Images inside RichTextBlock get hidden randomlyRichTextBlock 中的图像随机隐藏
【发布时间】:2013-08-03 09:37:50
【问题描述】:

我有一个带有 RichTextBlock 和 TreeView 的 Silverlight 5 NavigationApplication。每次单击 TreeView 项目之一时,我都会使用代码隐藏将一些图像添加到 RichTextBlock 中。问题是有时当 TreeView 的 SelectedItem 发生变化时,一些添加的图像不会出现在 RichTextBlock 中。但是当我多次更改 TreeView 的 SelectedItem 时,图像又出现了! 我认为这是因为图像缓存然后尝试对图像不使用缓存,但它是一样的。 我在运行时加载图像的代码是这样的:

var uri = new Uri(imageSource, UriKind.Relative);
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
bitmapImage.UriSource = uri;
bitmapImage.ImageFailed += image_ImageFailed;
bitmapImage.ImageOpened += image_ImageOpened;
var border = new Border() { Width = 500, Height = 400 };
var image = new Image()
{
    HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch,
    VerticalAlignment = System.Windows.VerticalAlignment.Stretch,
    Source = bitmapImage 
};
border.Child = image;
paragraph.Inlines.Add(new InlineUIContainer()
{
    Child = border
});  

如果我将BitmapCreationOption 保留为默认值,则每张图片只会出现一次,如果我再次单击该 TreeViewItem,则根本不会出现任何图片!
我尝试创建不同大小的图像,但没有任何变化,并且我也测试了从绝对 Uri 加载图像,但这没有帮助。
我要考虑 RichTextBlock 中的一个错误! 你们觉得怎么样?

【问题讨论】:

    标签: silverlight silverlight-5.0 image-caching richtextblock


    【解决方案1】:

    我找到了解决方案,我像这样更改了 BitmapImage.CreateOptions:

    bitmapImage.CreateOptions = BitmapCreateOptions.IgnoreImageCache | BitmapCreateOptions.DelayCreation;  
    

    一切正常:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多