我有一个TextBlock。我想在其内部绘制(在其当前的视觉范围内)。我需要它的DrawingContext。

如何获取DrawingContext?

(MSDN说,任何FrameworkElement都是Visual的后代,而Visual提供了对渲染的支持。但是我无法完全找到精确的显示)

请注意-此代码每秒将被调用几次。我正在寻找最有效的解决方案(这就是为什么我首先使用DrawingContext的原因)。

最佳答案

我做了什么:我编写了自己的装饰器,装饰了文本块,使用OnRender获得了DrawingContext,我将文本直接写入装饰器中,并使每次更改时Visual无效。

性能的提高(使用Ants Profiler仔细测量)比直接将文本写入文本块要好4.5倍,甚至比绑定字符串属性还要好。

关于c# - WPF。如何获取TextBlock的DrawingContext?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22121434/

10-10 13:47