Настройка относительно проста: < /p>
- Я получаю nvarchar (max) < /код> из базы данных. Это сохранение контента RTF.
- Я конвертирую RTF, когда загружается RichTextBox .
Код: Выделить всё
using (var stream = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(rtfString)))
{
TargetRichTextBox.Selection.Load(stream, DataFormats.Rtf);
}
< /code>
Я делаю свои вещи и сохраняю обратно в базу данных. < /li>
< /ul>
public string ConvertRichTextBoxToRtf(RichTextBox richTextBox)
{
if (richTextBox == null) throw new ArgumentNullException(nameof(richTextBox));
using (var memoryStream = new System.IO.MemoryStream())
{
var range = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
range.Save(memoryStream, DataFormats.Rtf);
return System.Text.Encoding.UTF8.GetString(memoryStream.ToArray());
}
}
Все свойства, которые я установил с помощью textrange.applypropertyvalue (inline.propname, значение)
Работаем во время выполнения. Но, кажется, не сохранен в строке RTF.
, в то время как все свойства textrange.applypropertyvalue (textelement.propname, value) < /code> ведут себя как ожидается. < /P>
Итак, должен ли я переключаться на XML или XAML для хранения моей строки?
MemoryStream < /code> в неправильном формате?
или я использую встроенные свойства? < /P>
Вот пример кода для свойства «встроенного»: < /p>
Код: Выделить всё
public void SetSelectionToSubscript(TextRange range)
{
if (range.IsEmpty) return; // Don't apply formatting to an empty selection
object currentBaseline = range.GetPropertyValue(Inline.BaselineAlignmentProperty);
if (currentBaseline is BaselineAlignment alignment && alignment == BaselineAlignment.Subscript)
{
// Reset to normal text
range.ApplyPropertyValue(Inline.BaselineAlignmentProperty, BaselineAlignment.Baseline);
range.ApplyPropertyValue(TextElement.FontSizeProperty, MyFondSize); // Reset font size
}
else
{
// Apply subscript formatting
range.ApplyPropertyValue(Inline.BaselineAlignmentProperty, BaselineAlignment.Subscript);
range.ApplyPropertyValue(TextElement.FontSizeProperty, MyFondSize - 2); // Adjust font size for subscript effect
}
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... rtf-in-wpf