【发布时间】:2014-02-20 09:02:10
【问题描述】:
在我的 C# WinForms 应用程序中,RichTextBox 控件未呈现 RTF 文本。
当我添加列表并保存内容时,ListBullets 仍然存在。
FontStyles 似乎已重置为默认值、颜色、大小、FontName 等。
所以我认为我设置字体的方式可能有问题。
rtf.SelectionFont = new Font(rtf.SelectionFont.FontFamily, rtf.SelectionFont.Size, FontStyle.Bold);
当我有以下内容并且只将标题设为粗体时;
Hello World
* List item 1
* List Item 2
当我重新加载 RTF 文本时,项目符号仍然存在,但字体被重置为默认值。
更新
好吧,我发现如果我在控件加载之后设置 Rtf 属性,那么一切都很好,但是如果我在控件加载到屏幕上之前设置 Rtf 属性,我会遇到这些问题。
【问题讨论】:
-
您是否尝试过删除
<Text></Text>标签(可能是在序列化过程中添加的? -
这工作:
richTextBox1.Rtf = @"{\rtf1\ansi\ansicpg1252\deff0\deflang3081{\fonttbl{\f0\fnil\fcharset0 Verdana;}}\viewkind4\uc1\pard\b\i\f0\fs48 Hello World\b0\i0\fs20\par}"; -
是的,
没有被放入 Rtf 属性中。我只是表明 Rtf 存储在 Xml 文档中。 -
如果您发布了一个小而完整的复制品,那么您会更容易看到这里有什么困扰您
-
根据 NSGaga 的要求,您必须包含我们可能会重现的代码才能准确理解问题。这里的一切都很重要:您添加的文本(添加方式)和选择定义(开始和长度)。