有没有办法在 WPF 中使用 Textbox/RichTextBox 和 HTML 格式?

Is there a way to use a Textbox/RichTextBox with HTML formatting in WPF?

我想要一个简单的 TextBox 或一个 RichTextBox 来格式化我的文本。我只需要选项 "bold"、"italic"、"underline" 和字体大小。 我的文本输入和输出需要采用 html 格式,但我无法从 RichTextBox 获取此格式。 有没有一种简单的方法来获得正确的格式?或者还有其他适合我需求的选择吗?

我发现了一篇不错的文章,它提供了一个格式栏,用于通过字体系列、大小、样式等来编辑字体。请参阅此 link,您可以在其中下载源代码:https://elegantcode.com/2010/10/26/create-your-own-format-bar-for-the-wpf-richtextbox/ .还要确保添加对 System.Windows.Controls.Ribbon.dll 的引用。您将在 Visual Studio.

中的“项目”->“添加引用”->“框架”->“程序集”下找到它

至于将生成的格式转换为 HTML,您可以简单地根据用户在代码隐藏的事件处理方法中选择的 UI 元素生成字符串。因此,您可以使用 <b></b><strong></strong> 标记表示粗体,使用 <i></i> 标记表示斜体,使用 <u></u> 标记表示下划线。然后对于字体系列和字体大小等属性,制作 <style></style> 标签的字符串,并包含 CSS 属性 font-familyfont-size.

因为我了解到您将编辑此内容,所以如果您使用 richtextbox,则必须将 html 转换为 xaml 对象,然后再转换回来。

Telerik 提供了执行此操作的控件。这本身就相当昂贵。 Telerik 控件很好,如果其他控件中的功能有用,这将是一个考虑的途径。

您可以改用专为 html 编辑设计的控件。

Smith HTML 编辑器是一个非常古老的 codeplex 项目,但普通的 html 不会改变,我认为代码已包含在内。

https://archive.codeplex.com/?p=smithhtmleditor