Могу ли я сохранить встроенное свойство Textrange в RTF в WPF?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 Могу ли я сохранить встроенное свойство Textrange в RTF в WPF?

Сообщение Гость »

Итак, я пишу проект, который имитирует слово.
Настройка относительно проста: < /p>
  • Я получаю nvarchar (max) < /код> из базы данных. Это сохранение контента RTF.
  • Я конвертирую RTF, когда загружается RichTextBox .
< Pre Class = "Lang-CS PrettyPrint-Override">

Код: Выделить всё

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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»