SOS:利用WPF RichTextBox 提取RTF, 莫名丢掉了Underline样式信息
主代码是这样写的:
1
richTextBox1.SelectAll();
2
richTextBox1.Selection.ApplyPropertyValue(Inline.TextDecorationsProperty, TextDecorations.Underline);
3
System.Drawing.FontStyle style = richTextBox1.DrawingFontStyle();
4
MessageBox.Show(style.ToString()); // <-- result: Underline
5![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
string rtf = richTextBox1.RTF();
7
richTextBox1.LoadFromRTF(rtf);
8
richTextBox1.SelectAll();
9
style = richTextBox1.DrawingFontStyle();
10
MessageBox.Show(style.ToString()); // <-- result: Regular
11![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
运行的结果:
第一次显示: Underline
第二次显示: Regular
而RichTextBox里的字体始终是带有下划线的。个人分析的结果为 RichTextBox 提取RTF的字符串丢掉了Underline样式, 那么改如何修正呢?
提取RTF字符串:
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
读取RTF:
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
解析FontStyle:
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
完整的Source:/Files/anders06/RTFConvertor.zip