2012-04-20 2 views
1

Я использую элемент управления браузером WinForms для отображения некоторого содержимого из html-файла, который я встроил в качестве ресурса, который отлично работает.Ссылка на встроенные ресурсы из встроенного ресурса

Я хочу встроить некоторые скрипты и таблицы стилей в свое приложение сейчас, но не могу понять, как ссылаться на другие встроенные файлы с html-страницы, если это вообще возможно.

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

ответ

1

Если скрипты и таблицы стилей находятся в том же дереве каталогов, что и файл HTML, вы можете использовать относительные пути (например, <script src="../scripts/myFoo.js" />). Или я чего-то не хватает?

+0

myFoo.js будет встроен в исполняемый файл в качестве ресурса так же, как HTML-файл, поэтому нет такого понятия, как относительное дорожка. –

+0

Я вижу, вы хотите, чтобы они были встроенными ресурсами в приложении. Как-то я пропустил это. В этом случае я думаю, что ваше текущее решение, вероятно, разумно, даже если оно немного грязно. –

+0

Я рассматриваю возможность принятия этого ответа, поскольку он позволяет мне понять, что я слишком старался быть умным. В конце концов я сделал zip все html-ресурсы и извлек их в каталог AppData пользователя при первом запуске, а не беспокоиться о том, что вы вставляете скрипты или CSS в документ элемента управления WebBrowser. –

0

Вставить файлы и затем извлечь каждый в временную папку перед визуализацией:

string ret = ResourceUtility.GetTempFileFromEmbeddedResource(Assembly.GetExecutingAssembly(), 
    "outlook.addin.a.html", "a.html"); 

var bsjs = ResourceUtility.GetTempFileFromEmbeddedResource(Assembly.GetExecutingAssembly(), 
    "outlook.addin.bootstrap.js.bootstrap.min.js", "bootstrap.min.js"); 

public static string GetTempFileFromEmbeddedResource(Assembly assembly, string resourceName, string fileName) 
{ 
    string output; 
    using (Stream s = ResourceUtility.GetEmbeddedResourceStream(assembly, resourceName)) 
    { 
     StreamReader sr = new StreamReader(s); 
     output = sr.ReadToEnd(); 
    } 

    return CreateLocalTempFile(output, fileName); 
} 
Смежные вопросы