Изменение текста отформатированного текста
Я использую следующий метод для записи текста в мое главное окно. У меня вопрос, есть ли способ изменить текст FormattetText или рисунок Visual после того, как он был создан? Или я должен использовать другой метод, чтобы написать свой текст, если я хочу, чтобы он обновлялся во время выполнения?
private Visual WriteText()
{
DrawingVisual drawingVisual = new DrawingVisual();
using (DrawingContext drawingContext = drawingVisual.RenderOpen())
{
FormattedText ft = new FormattedText("Hello world", CultureInfo.GetCultureInfo("en-us"), FlowDirection.LeftToRight, new Typeface("Klavika"), 10, Brushes.Red);
drawingContext.DrawText(ft, new Point(0, 0));
}
return drawingVisual;
}
1 ответ
Решение
Вы не можете изменить текст FormattedText
объект, как только он был создан, но вы можете изменить содержимое Visual
объект. Если у вас есть ссылка на DrawingVisual
Вы хотите изменить, вы можете использовать что-то похожее на ваш метод:
private Visual UpdateVisual(DrawingVisual drawingVisual, string updatedText)
{
using (DrawingContext drawingContext = drawingVisual.RenderOpen())
{
FormattedText ft = new FormattedText(updatedText, CultureInfo.GetCultureInfo("en-us"), FlowDirection.LeftToRight, new Typeface("Klavika"), 10, Brushes.Red);
drawingContext.DrawText(ft, new Point(0, 0));
}
return drawingVisual;
}