【发布时间】:2012-02-14 13:29:51
【问题描述】:
我想创建一个自定义 WPF 控件。 Control 类似乎是最适合从中派生控件的类,因为我不需要“ContentControl.Content”,但我想使用 Control.Template 使其“无外观”。
当我从 Control 派生控件并尝试在设计器中打开它时,设计器会显示以下消息:
“故意留空。视觉设计器不支持文档根元素。”
谷歌搜索我发现以下内容: http://msdn.microsoft.com/en-us/library/bb907310(v=vs.100).aspx
其中说:“WPF 设计器仅支持 Panel、Page、ContentControl 及其派生元素作为根元素。”
据我所知,ContentControls 基本上只扩展了具有“内容”属性的控件。恕我直言,这对于设计师来说还不够特别,无法依赖它来打开控件。
谁能解释一下为什么设计者不能打开从 Control 派生的控件,而它可以显示 ContentControls 的技术原因?
能够在设计器中打开从“Control”派生的控件不是很有意义吗?
【问题讨论】:
-
你试过从
UserControl类派生吗? -
@sll 我不需要 UserControl 的功能。继承链如下所示:UserControl -> ContentControl -> Control -> FrameworkElement。控制对我需要的东西最有意义。我知道我可以从 ContentControl 或 UserControl 派生来“让它工作”(快速而肮脏)。但我想了解为什么必须这样。
-
之所以对我来说是因为 MS 人员如此决定,换句话说,是内部决定。 Blend 可以做你想做的事。
-
@NestorArturo 这可能是原因......请随时将其发布为答案,以便我接受。