Добрый день
У меня есть вопрос об отображении HTML-документов в приложениях Windows Form. Приложение, над которым я работаю, должно отображать информацию из
база данных в формате html. Я попытаюсь описать действия, которые я предпринял (и которые потерпели неудачу):
1) Я попытался загрузить «виртуальную» HTML-страницу, которая существует только в памяти, и динамически изменить ее параметры (webbMain - это элемент управления WebBrowser):
public static string CreateBookHtml()
{
StringBuilder sb = new StringBuilder();
//Declaration
sb.AppendLine(@"<?xml version=""1.0"" encoding=""utf-8""?>");
sb.AppendLine(@"<?xml-stylesheet type=""text/css"" href=""style.css""?>");
sb.AppendLine(@"<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.1//EN""
""http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"">");
sb.AppendLine(@"<html xmlns=""http://www.w3.org/1999/xhtml"" xml:lang=""en"">");
//Head
sb.AppendLine(@"<head>");
sb.AppendLine(@"<title>Exemplary document</title>");
sb.AppendLine(@"<meta http-equiv=""Content-Type"" content=""application/xhtml+xml;
charset=utf-8""/ >");
sb.AppendLine(@"</head>");
//Body
sb.AppendLine(@"<body>");
sb.AppendLine(@"<p id=""paragraph"">Example.</p>");
sb.AppendLine(@"</body>");
sb.AppendLine(@"</html>");
return sb.ToString();
}
void LoadBrowser ()
{
this.webbMain.Navigate ( "о: пустой");
this.webbMain.DocumentText = CreateBookHtml ();
HtmlDocument doc = this.webbMain.Document;
} * +1010 *
Это не удалось, поскольку doc.Body имеет значение null, а doc.getElementById ("абзац") также возвращает значение NULL. Поэтому я не могу изменить свойство InnerText абзаца.
Кроме того, this.webbMain.DocumentText имеет значение "\ 0" ...
2) Я попытался создать html-файл в указанной папке, загрузить его в веб-браузер и затем изменить его параметры. HTML такой же, как созданный
Метод CreateBookHtml ():
private void LoadBrowser()
{
this.webbMain.Navigate("HTML\\BookPage.html"));
HtmlDocument doc = this.webbMain.Document;
}
На этот раз this.webbMain.DocumentText содержит Html-данные, прочитанные из файла, но doc.Body снова возвращает значение null, и я все еще не могу получить элемент, используя
getByElementId () метод. Конечно, когда у меня есть текст, я бы попробовал regex, чтобы получить указанные поля, или, возможно, сделал бы другие трюки для достижения цели, но мне интересно - есть ли просто способ mainipulate html? Для меня идеальным способом было бы создать текст HTML в памяти, загрузить его в элемент управления WebBrowser, а затем динамически изменять его параметры с помощью идентификаторов. Является ли это возможным? Спасибо за ответы заранее, с наилучшими пожеланиями,
1025 * Paweł *