Изменение текста отформатированного текста

Я использую следующий метод для записи текста в мое главное окно. У меня вопрос, есть ли способ изменить текст 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;
 }
Другие вопросы по тегам