【问题标题】:How i can display HTML code in xamarin app我如何在 xamarin 应用程序中显示 HTML 代码
【发布时间】:2019-11-15 16:27:56
【问题描述】:

将本地 HTML 代码直接显示到我的 page.xaml.cs 文件中的最佳方式是什么?我想将 html 代码直接写入 .cs 文件。谢谢

我将在我的 page.xaml.cs 中使用它

var browser = new WebView();
var htmlSource = new HtmlWebViewSource();
htmlSource.Html = @"<html><body>
  <h1>Xamarin.Forms</h1>
  <p>Welcome to WebView.</p>
  </body></html>";
browser.Source = htmlSource;

但是在 xaml 文件中,我如何显示这个 html 并将其放入堆栈布局中?

【问题讨论】:

标签: c# html xamarin


【解决方案1】:

你需要 HtmlLabel

在共享项目中:

   public class HtmlLabel : Label
    {

    }

机器人:

[assembly: ExportRenderer(typeof(HtmlLabel), typeof(HtmlLabelRenderer))]
namespace MedicinalPlants.Droid
{
    public class HtmlLabelRenderer : LabelRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
        {
            base.OnElementChanged(e);

            if (e.NewElement is HtmlLabel element)
                Control.SetText(Html.FromHtml(element.Text), TextView.BufferType.Spannable);
        }
    }
}

iOS:

[assembly: ExportRenderer(typeof(HtmlLabel), typeof(HtmlLabelRenderer))]
namespace XamarinForms.iOS.CustomRenderer
{
    public class HtmlLabelRenderer : LabelRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
        {
            base.OnElementChanged(e);
            if (e.NewElement is HtmlLabel element)
            {
                var nsAttr = new NSAttributedStringDocumentAttributes
                {
                    DocumentType = NSDocumentType.HTML
                };
                var html = NSData.FromString(element.Text, NSStringEncoding.Unicode);
                var nsError = new NSError();
                Control.AttributedText = new NSAttributedString(html, nsAttr, ref nsError);
            }
        }
    }
}

使用:

HtmlLabel htmlLabel = new HtmlLabel();
htmlLabel.Text = "<p>Bilimsel adı : Salvia officinalis</p>";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    • 2011-05-15
    • 2012-12-09
    • 2015-08-30
    • 1970-01-01
    • 2017-03-30
    相关资源
    最近更新 更多