Элемент управления WebBrowser имеет разные результаты для загрузки URL и настройки DocumentText, содержащего Silverlight - PullRequest
1 голос
/ 03 августа 2010

У меня есть приложение .NET 2.0 (использующее C #), которое показывает некоторые динамически сконструированные HTML-страницы, некоторые из которых содержат Silverlight. Вот простой пример HTML (обратите внимание, я использую абсолютные пути):

<html>
    <head></head>
    <body>   
        <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
            <param name="source" value="file:///c:/foo/bar/test.xap"/>
            <param name="onError" value="onSilverlightError" />
            <param name="background" value="yellow" />
            <param name="minRuntimeVersion" value="4.0.50401.0" />
            <param name="autoUpgrade" value="true" />
        </object>
    </body>
</html>

Если у меня есть элемент управления WebBrowser, загружающий локальный файл, содержащий это, он работает нормально:

WebBrowser browser = new WebBrowser();
browser.Url = new Uri("file:///C:/foo/bar/simpleExample.html");

Однако, если я установлю DocumentText с использованием точно такого же HTML, приложение Silverlight не загрузится. Похоже, что плагин загружается (если вы щелкнете правой кнопкой мыши, он скажет «Silverlight»), но содержание не делает. Я использую очень простое приложение Silverlight.

WebBrowser browser = new WebBrowser();
browser.DocumentText = "<html>...same HTML as above...</html>

Я бы предпочел использовать последний метод и не использовать локальные файлы. Есть идеи, почему я вижу эти различия? Я также пробовал ту же ситуацию, используя Silverlight.js, чтобы Javascript динамически вставлял Silverlight, но получил тот же результат.

1 Ответ

3 голосов
/ 03 августа 2010

Когда вы устанавливаете DocumentText, базовый URL изменяется примерно на: пусто . Чтобы изменить это, добавьте базовый тег или установите поток документа в поток, который также реализует IMoniker :: GetDisplayName для возврата базового URL.

...