我目前正试图端口马修Manela的"Converting between RTF and XAML"代码示例的WinRTXAML喷吹成RichEditBox
我有工作的HTML XAML代码,但我得到它为RichEditBox
时碰钉子。
Matthew的代码是基于WPF的,并使用以下函数将XAML转换为RTF。
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();
}
}
}
我试着用RichEditBox
在WinRT中重写这一点,但遇到了一些问题。最值得注意的是,WPF TextRange
接受XAML数据格式,但WinRT ITextRange
没有这个。但是,我知道我可以将XAML直接注入到控件中。
有没有什么办法从RichTextBlock
复制文本并以编程方式将其粘贴到RichEditBox中?
或,否则,有没有办法将HTML转换为RTF,在WinRT/Windows商店应用程序中工作?
只有一个评论。不是同一个问题,但可能会发现一些亮点。 http://underground.infovark.com/2011/03/03/highlighting-query-terms-in-a-wpf-textblock/ – Paparazzi
再次不一样,但可能有助于http://stackoverflow.com/questions/3728584/ how-to-display-search-results-in-a-wpf-items-control-with-highlight-query-term – Paparazzi
谢谢,虽然我没有突出问题的问题,但在RichEditBox或RichTextBlock中都很容易。我无法将内容从一个移动到另一个。 – roryok