更改FormattedText的文本

时间:2013-11-24 16:16:43

标签: c# wpf drawingcontext formatted-text drawingvisual

我正在使用以下方法将文本写入我的MainWindow。我的问题是,有没有办法在创建后更改FormattetText的文本或drawingvisual? 或者我应该使用其他方法来编写我的文本,如果我想在运行时更新它?

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 个答案:

答案 0 :(得分:4)

创建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;
 }