2013-11-24 2 views
1

Я использую следующий метод для записи текста в MainWindow. Мой вопрос в том, есть ли способ изменить текст FormattetText или чертеж после его создания? Или мне нужно использовать другой метод для написания моего текста, если я хочу, чтобы он обновлялся во время выполнения?Изменение текста форматированного текста

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; 
} 
+0

Вы должны воссоздать рисунок визуальных снова. –

+0

Не существует способа воссоздать его, это то, что я буду делать все время. пока моя программа запущена. –

+0

Рисование Визуализации визуализируются очень быстро. Воспроизведение не повлияет на ваше приложение. Просто попробуй. –

ответ

3

Вы не можете изменить текст 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; 
} 
+0

Thx, это было именно то, что мне нужно –

Смежные вопросы