У меня есть приложение .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, но получил тот же результат.