Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# UWP中ITextRange接口的使用与WPF中的TextRange对象_C#_Uwp_Uwp Xaml - Fatal编程技术网

C# UWP中ITextRange接口的使用与WPF中的TextRange对象

C# UWP中ITextRange接口的使用与WPF中的TextRange对象,c#,uwp,uwp-xaml,C#,Uwp,Uwp Xaml,在尝试将WPF代码(显示在末尾)转换为UWP代码时,我遇到了两个挑战: WPF中对象的UWP等价物 WPF中方法的UWP等价物 我在UWP中创建了一个 var richTextBox = new RichEditBox(); richTextBox.Document.GetText(TextGetOptions.None, out string rebText); ITextRange textRange = richTextBox.Document.GetRange(0, rebText.Le

在尝试将
WPF
代码(显示在末尾)转换为
UWP
代码时,我遇到了两个挑战:

  • WPF中对象的UWP等价物
  • WPF中方法的UWP等价物
  • 我在UWP中创建了一个

    var richTextBox = new RichEditBox();
    richTextBox.Document.GetText(TextGetOptions.None, out string rebText);
    ITextRange textRange = richTextBox.Document.GetRange(0, rebText.Length-1);
    
    但是UWP的
    ITextRange
    对象似乎没有Load()方法

    问题

  • UWP中的上述
    textRange
    是否与以下WPF代码中WPF的
    textRange
    对象执行相同的操作;或者它们在UWP中的行为与WPF中的不同
  • 由于UWP的
    ITextRange
    对象没有
    .Load(…)
    方法,在将以下WPF代码转换为UWP应用程序时,如何处理我的UWP代码中的Load(…)方法
  • 要迁移到UWP应用程序的WPF代码

    private static string ConvertRtfToXaml(string rtfText)
    {
        var richTextBox = new RichTextBox();
        if (string.IsNullOrEmpty(rtfText)) return "";
    
        var textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
    
        //Create a MemoryStream of the Rtf content
    
        using (var rtfMemoryStream = new MemoryStream())
        {
            using (var rtfStreamWriter = new StreamWriter(rtfMemoryStream))
            {
                rtfStreamWriter.Write(rtfText);
                rtfStreamWriter.Flush();
                rtfMemoryStream.Seek(0, SeekOrigin.Begin);
    
                //Load the MemoryStream into TextRange ranging from start to end of RichTextBox.
                textRange.Load(rtfMemoryStream, DataFormats.Rtf);
            }
        }
    
        using (var rtfMemoryStream = new MemoryStream())
        {
    
            textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
            textRange.Save(rtfMemoryStream, DataFormats.Xaml);
            rtfMemoryStream.Seek(0, SeekOrigin.Begin);
            using (var rtfStreamReader = new StreamReader(rtfMemoryStream))
            {
                return rtfStreamReader.ReadToEnd();
            }
        }
    }
    
    由于UWP的ITextRange对象没有.Load(…)方法,在将以下WPF代码转换为UWP应用程序时,如何处理UWP代码中的Load(…)方法

    在UWP中,可以使用and方法


    您可以检查文档上的示例。

    但是
    ITextDocument.SaveToStream方法的
    TextGetOptions
    参数没有将
    Xaml
    作为数据格式保存到流的选项]。上面的
    WPF
    code正在使用
    textRange.Save(rtfMemoryStream,DataFormats.Xaml)。那么,它的等价物是什么?@nam你说得对。目前还没有这样的数据格式。您可以在上提交功能请求。