我想知道是否有人知道为什么ContentElement不是从视觉中派生的,因此不是视觉树(它背后的逻辑)的一部分。将其添加到主机元素似乎更多的工作,然后主机元素使用方法将其添加到逻辑树的节点,以便它可以参与事件路由。它采用与绘图相同的方法,不是从视觉中衍生出来的,而是必须托管在视觉元素中。
答案 0 :(得分:2)
ContentElement用于文本内容。文本的布局要求与标准控件(从Visual派生)不同。因此,ContentElement直接从DependencyObject派生而不是Visual。
ContentElement没有渲染内容,但需要托管在从Visual派生的类中才能在屏幕上呈现。
(编辑:ContentControl和ContentElement是非常不同的野兽)