【发布时间】:2013-12-18 17:40:32
【问题描述】:
假设我想创建一个直接从UIElement 继承的类,并且能够包含一个或多个[外部添加的]UIElements 作为子级 - 例如Panels 和其他容器控件。显然很容易让班级以某种形式收集UIElements,但是如何让它们与我的班级一起显示/呈现?
我认为它们必须以某种方式作为我自己的UIElement 的子级添加到可视化树中(或者,可能,通过VisualTreeHelper.GetDrawing 手动渲染它们并使用OnRender 的@987654328 来完成@? 但这似乎很笨拙)。
我确实不想知道我可以(或应该)从更多现成的控件继承,例如 FrameworkElement、Panel、ContentControl 等(如果有的话,我想要了解他们如何实现外部添加的子元素的显示/渲染(如果适用)。
我有理由希望在层次结构中尽可能高,所以请不要给我任何关于为什么 XAML / WPF 框架“兼容”等是一件好事的讲座。
【问题讨论】:
-
用 Reflector 之类的检查
PresentationFramework.dll。 -
大声笑 - 我是这个接近添加“你听到了吗,HighCore?”在最后一段的末尾(在我注意到有评论之前......但你打败了我)。
-
不记得我是否对你说过,但是,是的,你是一个经过实验的开发人员,他真的
knows他在做什么,但对于大多数使用 WPF 的人来说,情况恰恰相反.这就是为什么我有这种陈词滥调的“删除所有代码并学习 MVVM”的东西不断地一次又一次地出现。当然,这不适用于您和其他专业的 WPF/XAML 开发人员
标签: c# wpf custom-controls rendering uielement