首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向RichEditBox中注入XAML

向RichEditBox中注入XAML
EN

Stack Overflow用户
提问于 2014-02-24 14:59:22
回答 1查看 1K关注 0票数 1

我目前正在尝试将Matthew的RTF和XAML之间的转换代码示例移植到WinRT

我已经让HTML代码正常工作了,但是我在进入RichEditBox时遇到了一个障碍。

Matthew的代码基于WPF,并使用以下函数将XAML转换为RTF。

代码语言:javascript
复制
private static string ConvertXamlToRtf(string xamlText) 
{ 
    var richTextBox = new RichTextBox(); 
    if (string.IsNullOrEmpty(xamlText)) return ""; 
    var textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd); 
    using (var xamlMemoryStream = new MemoryStream()) 
    { 
        using (var xamlStreamWriter = new StreamWriter(xamlMemoryStream)) 
        { 
            xamlStreamWriter.Write(xamlText); 
            xamlStreamWriter.Flush(); 
            xamlMemoryStream.Seek(0, SeekOrigin.Begin); 
            textRange.Load(xamlMemoryStream, DataFormats.Xaml); 
        } 
    } 
    using (var rtfMemoryStream = new MemoryStream()) 
    { 
        textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd); 
        textRange.Save(rtfMemoryStream, DataFormats.Rtf); 
        rtfMemoryStream.Seek(0, SeekOrigin.Begin); 
        using (var rtfStreamReader = new StreamReader(rtfMemoryStream)) 
        { 
            return rtfStreamReader.ReadToEnd(); 
        } 
    } 
}

我试过用WinRT用RichEditBox重写它,但遇到了一些问题。最值得注意的是,WPF TextRange接受XAML数据格式,但是WinRT ITextRange没有这种格式。但是,我知道我可以直接将XAML注入RichTextBlock控件。

有没有办法以编程的方式将文本从RichTextBlock复制并粘贴到RichEditBox中?

如果没有做到这一点,是否有办法将WinRT / Windows应用程序中的WinRT转换为RTF?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-28 10:04:30

我从msdn Windows应用程序论坛的Rob Caplan那里得到了答案

http://social.msdn.microsoft.com/Forums/windowsapps/en-US/c5f4e679-c563-463c-b812-05b16cd5720f/converting-html-to-rtf-using-richeditbox-and-richtextbox?forum=winappswithcsharp

直接引用:

“您必须自己进行转换。RichEdiBox没有任何本机转换能力。它直接呈现RTF,并且不将其转换为Xaml。这与WPF实现不同,后者转换RTF而不是直接显示它。”

好吧,那就这样。我目前正在为WinRT的使用调整一个开放源代码的RTF库。完成后我会发邮件的。

编辑

罗伯错了!这是可能的,尽管是通过一个解决办法。我想出了如何使用DataPackage类来实现它。完整答案在这里:https://stackoverflow.com/a/22093837/352867

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21991309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档