#c# #silverlight #windows-phone-7
#c# #серебристый свет #windows-phone-7 #silverlight
Вопрос:
У меня есть элемент WebBrowser в моем пользовательском интерфейсе, я могу заставить его перейти на размещенную страницу, но когда я хочу, чтобы он загрузил локальную веб-страницу (которая находится в моих ресурсах решения), которая является точным HTML-файлом, размещенным в Интернете, он просто показывает пустую страницу.
browser.Navigate(new Uri("test.html", UriKind.Relative));
Если я изменяю UriKind или название страницы, отображается сообщение об ошибке, что файл не найден, поэтому я знаю, что браузер правильно находит веб-страницу, но он не будет ее отображать.
Мне нужно это сделать, потому что я хочу показывать страницу, пока пользователь находится в автономном режиме.
Ответ №1:
Если у html-файла есть действие сборки Content
, вы можете получить к нему доступ непосредственно из места установки, если зададите относительный путь.
Если вы хотите иметь возможность перемещаться между страницами или включать другие ресурсы в файл (включая внешние css, js или даже изображения), то вам нужно либо скопировать все файлы в IsolatedStorage и просматривать их оттуда, либо разместить их снаружи.
Редактировать:
В MSDN есть статья, в которой объясняется копирование файлов в IsolatedStorage, чтобы их можно было просмотреть в элементе управления WebBrowser по адресуhttp://msdn.microsoft.com/en-us/library/ff431811 (v =против92).aspx
Комментарии:
1. Мне действительно нужны JS и изображения, но не навигация, поскольку это просто HTML со всем необходимым мне контентом (более 100 изображений), как мне следует выполнить процедуру IsolatedStorage? (копирование и доступ), спасибо
Ответ №2:
Браузер не может прочитать ресурс из вашего приложения / Dll. Однако, если у вас есть файл в той же папке, что и ваше приложение, вы могли бы сделать:
var home = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase;
browser.Navigate(new Uri("file://" home "/test.html");
Комментарии:
1. Я получаю «System. Исключение MethodAccessException «когда система создает переменную home: Дополнительная информация: Попытка доступа к методу не удалась: System. Отражение. Сборка. getName()
2. Это звучит как ограничение безопасности на Windows Phone 7. Я никогда не использовал эту plantform. Надеюсь, кто-нибудь там просветит нас.
3. WP7 не поддерживает протокол «file: //»