Элемент управления предварительным просмотром веб-страницы Silverlight

Я делаю приложение Silverlight, в котором, когда пользователь наводит указатель мыши на некоторые панели вкладок, он / она увидит предварительный просмотр страницы, на которую он будет ссылаться. Причина этого предварительного просмотра в том, что часто достаточно иметь визуальную миниатюру страницы, чтобы принять решение за пользователя. Как в Silverlight создать элемент управления, который просто отображает веб-страницу, желательно в уменьшенном масштабе?

Ваше здоровье

Ник


person niklassaers-vc    schedule 23.02.2009    source источник


Ответы (1)


Как вы, вероятно, знаете, существуют некоторые проблемы, связанные с пересечением границ доменов в Silverlight. Проблемы, которые обсуждались при переполнении стека, например.

Это актуально, потому что обычно вы не можете запрашивать веб-ресурсы в других доменах, что вам нужно сделать здесь.

Я видел один из способов обойти это — использовать веб-службу, которая не имеет такого же ограничения. Таким образом, вы можете создать веб-службу, которая предоставляет byte[] изображения, и заставить веб-службу выполнять вызовы для извлечения изображения и отправки его обратно в Silverlight.

Получив изображение byte[], вы можете прочитать его в асинхронном вызове и установить источник изображения следующим образом.

BitmapImage thumb;
using (MemoryStream stream = new MemoryStream(imgArray))
{
    thumb = new BitmapImage();
    thumb.SetSource(stream);
}

Другая проблема заключается в том, как создать миниатюру, для этого вы можете google, есть несколько проектов, которые показывают, как это сделать, и некоторые общедоступные веб-службы, которые делают это за вас. Одним из таких примеров является Amazon.

person Tristan Warner-Smith    schedule 23.02.2009
comment
Большое спасибо за то, что указали на это и предоставили эти обходные пути. Я ожидал, что в Silverlight будет что-то похожее на UIWebView iPhoneSDK, который подключается к поддерживаемым браузерам. Ура -Ник - person niklassaers-vc; 24.02.2009