2010-08-13 3 views
2

Я работаю над инструментом, который отображает фрагменты XAML на изображения. XAML используется в качестве шаблона для создания изображений. Из-за того, как работает рендеринг, невозможно использовать код. Оказание просто xaml не проблема.Render XAML с удаленными изображениями

В одном из моих шаблонов я хочу предоставить рендереру lat/long и включить изображение с карт Google, среди других изображений, хранящихся в Интернете. 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 для добавления URL в шаблон.

Кто-нибудь знает, как я могу визуализировать XAML с удаленными изображениями?

ответ

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; 
    } 
} 
Смежные вопросы