首页 > 解决方案 > 如何在 xamarin 表单中创建带有或不带有 Web 视图的富文本框?

问题描述

我想在 xamarin 表单中创建一个带有或不带有 web 视图的富文本框。我尝试了很多例子,但没有一个对我有用。这些例子是

https://github.com/XAM-Consulting/TEditor

这个例子的问题是,它对我来说太慢了,而且根本没有编辑我的文本。它多次崩溃。所以我试着按照这个例子

https://forums.xamarin.com/discussion/95318/rich-text-box-in-xamarin-forms

但是 Adam.Else 的代码给了我很多错误并且它不起作用。我已经报告了stackoverflow中的错误。正如你可以在下面看到这个链接 -

未处理的异常:Xamarin.Forms.Xaml.XamlParseException:位置 12:21。未找到键 FromRTFConverter 的 StaticResource

我不知道如何解决这个问题。有什么建议么?

标签: xamarinxamarin.formsrichtextbox

解决方案


我使用web view做到了。首先,我下载了一个使用 HTML/CSS 和 JavaScript 创建的富文本框。这是我将在我的 xamarin 表单应用程序中用作 Web 视图的富文本框的链接。

主页.xaml

<StackLayout>
        <!-- Place new controls here -->

        <WebView x:Name="MyWebView"  VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" />
    </StackLayout>

MainPage.xaml.cs

 public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
            MyWebView.Source = new HtmlWebViewSource();
            MyWebView.Source = DependencyService.Get<IBaseUrl>().Get();
        }
    }

我创建了一个名为IBaseUrl的接口。这是我的代码

public interface IBaseUrl { string Get(); }

我在 Native 中创建了一个名为 BaseUrl_Android 的类,用于调用我放在 android 的 Assets 文件夹中的 Html 文件。这是我的BaseUrl_Android代码

[assembly: Dependency(typeof(BaseUrl_Android))]
namespace webviewdemo.Droid
{
    public class BaseUrl_Android : IBaseUrl
    {
        public string Get()
        {
            return "file:///android_asset/fontawesome5.html";
        }
    }
}

在 assets 文件夹中添加 HTML 和 JavaScript 文件。如果您对在 xamarin 表单中添加和使用 html 文件有任何疑问,请参阅此链接这就是在 Xamarin Forms 中获得一个很棒的富文本框所需要做的一切

这是我的富文本框的截图


推荐阅读