RichTextFormat как тип переменной

Я пытаюсь создать программу универсальной платформы Windows (UWP), в которой у меня есть RichEditBox, который позволяет мне писать текст с расширенным форматированием для нескольких отдельных объектов. Я хочу иметь возможность щелкнуть объект, а затем отобразить текст, связанный с этим объектом.

Щелкните объект -> RichEditBox отображает текст в RTF (Rich Text Format) этого объекта.

Щелкните другой объект -> RichEditBox теперь отображает текст, принадлежащий последнему объекту.

В настоящее время я могу удерживать ввод только в виде строки, но при этом теряется форматирование ввода (в частности, цвета слов).

Как удерживать ввод (хранить данные в ОЗУ) таким образом, чтобы сохранить форматирование?

Могу ли я использовать переменные определенного типа?


person Magnus    schedule 05.05.2018    source источник
comment
вы имеете в виду, что у вас может быть строка и изображение рядом с ней, и когда вы выбираете строку / текст из REB, вы также хотите, чтобы рядом с ней было изображение?   -  person Christopher H.    schedule 05.05.2018
comment
Нет. Я хочу иметь список переменных, где каждая переменная содержит текст в формате RTF ввода, введенного пользователем. Использование строкового типа не делает этого, НЕ сохраняет разные цвета разных слов.   -  person Magnus    schedule 06.05.2018
comment
Вы имеете в виду: если пользователь вводит Hello good morning, вам нужен список слов Hello, Good, Morning?   -  person Christopher H.    schedule 06.05.2018
comment
Нет. Если пользователь вводит: public static main (string [] args), я хочу иметь возможность устанавливать цвет для каждого слова. Пример: паблик в синем. статический фиолетовый. Для этого я использую RichEditBox и RichTextFormat. Теперь я хочу сохранить этот ввод в переменной (например, строку), но без потери окраски слов. Как я могу хранить (в ОЗУ, а не на жестком диске) информацию, содержащуюся в RichTextFormat?   -  person Magnus    schedule 06.05.2018
comment
Это может показаться немного сложным ... но я сделал это ... я постараюсь опубликовать ответ :)   -  person Christopher H.    schedule 06.05.2018


Ответы (1)


Нашел решение проблемы. Мне нужно сохранить ввод в RichEditBox как InMemoryRandomAccessStream.

public sealed partial class MainPage : Page
{
    // The variable to hold the input
    Windows.Storage.Streams.InMemoryRandomAccessStream stream = 
    new Windows.Storage.Streams.InMemoryRandomAccessStream(); 


    public void storeInput()
    {
        RichEditBox.Document.SaveToStream
        (Windows.UI.Text.TextGetOptions.FormatRtf, stream);
    }
}
person Magnus    schedule 21.05.2018