【问题标题】:Why can't the XAML designer open controls derived from "Control"?为什么 XAML 设计器不能打开从“控件”派生的控件?
【发布时间】: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 这可能是原因......请随时将其发布为答案,以便我接受。

标签: .net wpf


【解决方案1】:

我的原因是因为 MS 人员决定了,换句话说,这是一个内部决定。 Blend 可以为所欲为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-18
    • 2015-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-01
    • 1970-01-01
    相关资源
    最近更新 更多