Как прочитать HTML -подобный текстовый файл в RichTextBox? - PullRequest
0 голосов
/ 30 марта 2020

У меня есть текстовый файл (. Txt) , мне нужно вставить его в мой RichTextBox. Я создал класс, изначально предназначенный для чтения RTF-файлов в XAML, но добавил изменения, соответствующие моим потребностям. Это класс:

public class TextToXAML: DependencyObject
{
    public static string GetDocumentContent(DependencyObject obj)
    {
        return (string)obj.GetValue(DocumentContentProperty);
    }

    public static void SetDocumentContent(DependencyObject obj, string value)
    {
        obj.SetValue(DocumentContentProperty, value);
    }

    public static readonly DependencyProperty DocumentContentProperty =
        DependencyProperty.RegisterAttached(
            "DocumentContent", 
            typeof(string), typeof(TextToXAML),
            new FrameworkPropertyMetadata
            {
                BindsTwoWayByDefault = true,
                PropertyChangedCallback = (obj, e) =>
                {
                    var richTextBox = (RichTextBox)obj;

                    // Parse the XAML to a document (or use XamlReader.Parse())
                    var xaml = GetDocumentContent(richTextBox);
                    var doc = new FlowDocument();
                    var range = new TextRange(doc.ContentStart, doc.ContentEnd);

                    using (var reader = new MemoryStream(Encoding.UTF8.GetBytes(xaml)))
                    {
                        reader.Position = 0;
                        richTextBox.SelectAll();
                        richTextBox.Selection.Load(reader, DataFormats.Html);
                    }
                }
            });
}

И мой XAML таков:

<RichTextBox local:TextToXAML.DocumentContent="{Binding Document}">

Граница Document на самом деле от моего ViewModel, а содержимое выглядит примерно так:

[Title]
Title = The Title

[Sub Title]
The Subtitle
<br>
Content

Выше приведен фактический формат, я только что изменил текст. Однако я получил эту ошибку:

"Формат данных HTML не поддерживается".

Примечание : Если вы заметили, Я использовал термин "HTML -подобный" , это из-за <br>. Это единственное HTMLi sh содержимое в файле, пожалуйста, исправьте меня, если я ошибаюсь.

Примечание 2 : Я потом понимаю, что это INI файл записан в виде текстового файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...