Я относительно новичок в C # и .Net, и это мой первый проект WPF, поэтому я надеюсь, что это всего лишь случай отсутствия знакомства и слабого Google-Fu с моей стороны.
Мне нужно создать окно предварительного просмотра для инструмента разработки HTML5. Страницы будут содержать аудио javascript, ogg vorbis и / или mpeg4 (m4a) и изображения png.
Кажется, что элемент управления Frame работает нормально для просмотра файла. Сначала я попробовал элемент управления WebBrowser, но, похоже, он основан на IE7, который не поддерживает необходимую мне функциональность. Кажется, что Frame использует установленный IE9, что мне и нужно. Кажется, проблема в загрузке контента.
Я могу заставить его работать, если страница размещена на веб-сервере на основе Apache, но это определенно не является предпочтительным решением. Профессиональные веб-разработчики не являются целевой аудиторией, поэтому я считаю, что нецелесообразно ожидать, что пользователи смогут установить и настроить его. Я пытался реализовать простой сервер, используя HttpListener, но (а) он, кажется, не работает лучше, чем просто установка Frame Source = "C: /test_project_path/index.html" напрямую, и (b) Я не хочу создавать никаких проблем, если у пользователя уже есть веб-сервер, работающий на его компьютере. У меня возникли проблемы с исключениями «конфликты с существующей регистрацией» при попытке добавить префикс - даже если у меня не установлен другой веб-сервер, не говоря уже о работе, и я убедился, что больше ничего не использует этот порт - что делает я не решаюсь на это положиться.
То, что я действительно хотел бы сделать, это:
myFrame.Navigate("C:/test_project_path/index.html");
Это почти работает. Кажется, я получаю графические элементы, но приложение javascript вылетает с ошибкой «Невозможно получить значение свойства: объект пуст или не определен». Поскольку, как я уже сказал, он работает при работе с Apache, похоже, проблема в том, что не все файлы javascript загружаются правильно.
Мои вопросы:
Есть ли какие-то настройки, которые мне не хватает? Я получаю предупреждение безопасности об активном контенте, который я должен щелкнуть. Я бы хотел избавиться от этого, но сейчас я не беспокоюсь, если это не имеет прямого отношения к моей нынешней проблеме.
Есть ли какой-нибудь способ проверить, выполняет ли элемент управления Frame все необходимые подзапросы для загрузки страницы и выполняются ли они? Надевая часы на myFrame, я вижу только начальную страницу (index.html). Похоже, нет способа определить, существуют ли различные подэлементы, кроме того, что отображает myFrame, и ошибок javascript, которые я получаю.
Нужно ли вызывать файлы javascript с помощью InvokeScript () или это просто для доступа к функциям из элемента управления WPF?