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