c# - WPF。如何获取 TextBlock 的 DrawingContext?

标签 c# wpf .net-4.5

我有一个 TextBlock。我想在其中绘制(在其当前 视觉边界内)。我需要它的 DrawingContext。

如何获取 DrawingContext?

(MSDN 说任何 FrameworkElement 都是 Visual 的后代,并且 Visual 提供了对渲染的支持。但我不太清楚到底是怎么回事)

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

最佳答案

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

性能提升(使用 Ants 分析器仔细测量)比直接将文本写入文本 block 好 4.5 倍,甚至比绑定(bind)字符串属性更好。

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

相关文章:

c# - 调度任务与任务创建

c# - 16 位数字的基本正则表达式

c# - 基于模式为 XML 文件创建 WPF 编辑器

wpf - 将 LocBaml 和资源合并到单个卫星组件中

c# - 如何使用 CaSTLe Windsor 通过 WPF 应用程序实现正确的 Di

c# - 为异步方法编写包装器

c# - 等待/异步问题

c# - 如何在 C# 中有效地比较两个排序的大列表?

c# - 根据下拉选择将 ID 保存到数据库

c# - 带有集合的模型 - Html.ListBoxFor 未设置选定项