WPF FlowDocument 显示*一些*图像但不显示其他图像
WPF FlowDocument Displays *Some* Images But Not Others
这是我用来创建 Image
并插入到 FlowDocument
中的代码。
private static Image GetImage(string url)
{
if (url == null) throw new ArgumentNullException("url");
if (!(url.StartsWith("http://") || url.StartsWith("https://") || url.StartsWith("ftp://")))
return null;
var uri = new Uri(url, UriKind.Absolute);
var bmpImg = new BitmapImage(uri)
{
CacheOption = BitmapCacheOption.OnDemand,
};
if (bmpImg.CanFreeze) bmpImg.Freeze();
var img = new Image
{
Source = bmpImg,
Stretch = Stretch.Uniform,
Height = 120,
Width = 120,
};
return img;
}
当我使用
创建文档并从我的服务器插入图像时
Designer.CaretPosition.Paragraph.Inlines.Add(image);
一切正常 - 图像按预期显示。此外,the main Google Logo image works fine, but the HackaDay Logo 和其他人只显示空白图像。
这可能是什么原因?
我认为有些网站有hotlink protection。例如,在我的网站上,我可以在我域中的每个页面中 link 一张照片并且效果很好,但是如果您尝试 link 其他域中的一张照片,则该照片不会加载.
这是我用来创建 Image
并插入到 FlowDocument
中的代码。
private static Image GetImage(string url)
{
if (url == null) throw new ArgumentNullException("url");
if (!(url.StartsWith("http://") || url.StartsWith("https://") || url.StartsWith("ftp://")))
return null;
var uri = new Uri(url, UriKind.Absolute);
var bmpImg = new BitmapImage(uri)
{
CacheOption = BitmapCacheOption.OnDemand,
};
if (bmpImg.CanFreeze) bmpImg.Freeze();
var img = new Image
{
Source = bmpImg,
Stretch = Stretch.Uniform,
Height = 120,
Width = 120,
};
return img;
}
当我使用
创建文档并从我的服务器插入图像时Designer.CaretPosition.Paragraph.Inlines.Add(image);
一切正常 - 图像按预期显示。此外,the main Google Logo image works fine, but the HackaDay Logo 和其他人只显示空白图像。
这可能是什么原因?
我认为有些网站有hotlink protection。例如,在我的网站上,我可以在我域中的每个页面中 link 一张照片并且效果很好,但是如果您尝试 link 其他域中的一张照片,则该照片不会加载.