将RTF转换为FlowDocument的最快方法是什么?我将RTF存储为普通字符串然后重新加载,我使用以下方法,
FlowDocument document = new FlowDocument();
document.SetValue(FlowDocument.TextAlignmentProperty, TextAlignment.Left);
TextRange content = new TextRange(document.ContentStart, document.ContentEnd);
if (content.CanLoad(DataFormats.Rtf) && string.IsNullOrEmpty(rtf) == false)
{
// If so then load it with RTF
byte[] valueArray = Encoding.ASCII.GetBytes(rtf);
using (MemoryStream stream = new MemoryStream(valueArray))
{
content.Load(stream, DataFormats.Rtf);
}
}
但这种方法很慢。我需要加载许多RTF(大约1000)。什么可以让这个过程快速进行?有没有其他方法来加载Flowdocument?
答案 0 :(得分:1)
你真的需要定义你真正需要的东西。 TextBlock一点都不弱。 它提供的东西;)。
但还算公平。我认为你应该存储FlowDocument XAML而不是实际的RTF。这样就不会有转换,它应该快几倍。 (参见DataFormats.xaml)
答案 1 :(得分:0)
Hello Vibhore当需要有限的文本支持时,应该使用TextBlock元素,当需要最小的文本支持时,可以使用Label。
FlowDocument元素是支持丰富的内容呈现的可重新流动文档的容器,因此比使用TextBlock或Label控件具有更大的性能影响。