xamarin - 如何在 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
我不知道如何解决这个问题。有什么建议么?
解决方案
我使用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 中获得一个很棒的富文本框所需要做的一切。
这是我的富文本框的截图
推荐阅读
- html - 如何从详细信息元素中删除项目符号?
- php - mysql 在两个表中插入
- ansible - 循环内循环
- c# - 如何从 pdf 文件中的表格中获取文本?
- flutter - 是否可以缓存小部件以恢复?
- node.js - 构建服务器时出错 [Route.get() 需要回调函数]
- javascript - 角度未捕获(承诺)错误加载块失败 Microsoft Edge
- c# - 如何在 MVC 5 的 Bootstrap 3 导航中将链接左右对齐
- json - 什么是 axios.defaults.headers.post 'content-type' = 'application/json'
- c++ - 在 C++ 中使用 multipe recv() 和 send() 调用