我正在研究一种将XAML片段呈现给图像的工具.XAML用作模板来设计图像。由于渲染的工作方式,不可能使用代码隐藏。只渲染xaml是没问题的。
在我的一个模板中,我想给渲染器一个纬度/经度,并包含来自谷歌地图的图像,以及存储在网络上的其他图像。渲染XAML,但不包括图像。我认为这必须对下载图像的延迟做些什么。
模板看起来像:
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Border CornerRadius="10" Background ="#FF123456" >
<Image Source="{0}" Width="250" Height="150"/>
</Border>
</UserControl>
我使用string.Format
将网址添加到模板中。
有谁知道如何用远程图像渲染XAML?
答案 0 :(得分:0)
我想出了一个解决方法。由于本地图像在渲染中起作用,我决定使用临时图像。在渲染XAML之前,我下载了图像,将其保存到磁盘并使用该路径作为图像源。
此方法类似于:
public string GetGoogleMapsImage(string lat, string lng, string path)
{
string googleMapsImage =
string.Format(
"http://maps.google.com/maps/api/staticmap?center={0},{1}&zoom=8&size=250x150&sensor=false" , lat, lng);
string returnpath;
using (var w = new WebClient())
{
var gm = w.DownloadData(googleMapsImage);
returnpath = path + "\\~googletemp" + DateTime.Now.Ticks + ".png";
File.WriteAllBytes(returnpath, gm);
return returnpath;
}
}