【发布时间】:2013-11-24 16:16:43
【问题描述】:
我正在使用以下方法将文本写入我的 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;
}
【问题讨论】:
-
您必须重新创建绘图视觉对象。
-
有没有办法重新创建它,这是我将一直做的事情。当我的程序正在运行时。
-
绘图视觉渲染速度非常快。重新创建它不会影响您的应用程序。试试看吧。
-
不要混淆重新创建和重新渲染。 不要在每次文本更改时创建一个新的 DrawingVisual。只需绘制现有的,如 Miky 给出的答案所示。
-
@Clemens - 是的,我的错。仅表示重新渲染。
标签: c# wpf drawingcontext formatted-text drawingvisual