Стартовая страницаНовостиКак показать html контент в приложении для windows mobile
Читайте также:

Как показать html контент в приложении для windows mobile

Для того чтобы в приложении для windows phone или windows 10 вывести некоторое html содержимое - например, когда ваше оно загружает некоторую публикацию с новостного сайта - можно использовать три способа - быстрый, правильный и третий который рассматривать не буду, потому что он банален и связан с представлением текста без html тегов и форматирования. А для первых двух необходимо использовать элемент управления Web Browser. 

Первый (быстрый) метод

Надо всего лишь вызвать метод NavigateToString.

Пример:

webBrowser1.NavigateToString("<html><body><h1>Заголовок страницы</h1><p>Это некоторый текст, который будем генерировать из кода</p></body></html>");

Второй (правильный) метод

Подразумевает, что при разработке используется MVVM паттерн и вызов метода NavigateToString сопряжен с рядом трудностей. Вместо него необходимо использовать Binding механизм. Ниже показано как через статический вспомогательный класс добавить dependency property, чтобы вы могли использовать binding к некоторому html контенту в вашей модели.

public static class WebBrowserHelper
{

public static readonly DependencyProperty HtmlProperty = DependencyProperty.RegisterAttached(

  "Html", typeof(string), typeof(WebBrowserHelper), new PropertyMetadata(OnHtmlChanged));

 

public static string GetHtml(DependencyObject dependencyObject)
{

return (string)dependencyObject.GetValue(HtmlProperty);

}

 

public static void SetHtml(DependencyObject dependencyObject, string value)
{

dependencyObject.SetValue(HtmlProperty, value);

}

 

private static void OnHtmlChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{

var browser = d as WebBrowser;
if(browser == null)
   return;
var html = e.NewValue.ToString();
browser.NavigateToString(html);

}

}

После того как вы создали этот класс вы можете очень просто привязать html контент из вашей модели внутри xaml файла.

<phone:WebBrowser cxi:WebBrowserHelper.Html="{Binding Question.Body}" />

И не забудьте продекларировать пространство имен в xaml

xmlns:cxi="clr-namespace:YourAppNamespace"

 

Пока еще нет ни одного комментария. 

Дима Кононов © - разработка сайтов и порталов.


Функционирует с 2013 года. Версия 3.0
Разработка и дизайн: Кононов Дмитрий
Комментарий: У меня есть, что сказать по этому поводу, но я лучше промолчу.
Сейчас зарегистрированных посетителей на сайте: 0 Посмотреть подробнее...
Новостная лента RSS 2.0

Вверх