2

我正在使用以下方法将文本写入我的 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;
}
4

1 回答 1

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;
 }
于 2013-11-24T16:30:13.810 回答