【问题标题】:WPF: What is the generic container control?WPF:什么是通用容器控件?
【发布时间】:2011-01-08 22:33:10
【问题描述】:

在 HTML 中,通用容器控件是一个 DIV。它本身不做任何事情,但它是一个挂东西的好地方。

同样,在 WinForms 中,通用容器控件是 Panel。同样,这是我以后加载其他控件的占位符。

我应该为 WPF 使用什么?

【问题讨论】:

    标签: wpf controls containers


    【解决方案1】:

    一些比较常用的容器有:

    Grid
    StackPanel
    DockPanel
    WrapPanel
    Canvas

    另见MSDN Panels Overview

    【讨论】:

    • 要补充这一点,这完全取决于您需要对那些后来加载的控件做什么。 IE。他们应该有什么布局,等等。在其中一种情况下,我使用了网格。如果您需要加载多个控件,DockPanel 可能不是那么好。
    • 在这种情况下,我想要尽可能少的假设。任何布局都应该由正在加载的控件处理,因此单个控件限制是有意义的。
    • 不是我期待的简单答案,但该链接读起来非常好。
    • 这些没有模板。我想要最简单的控件,它有模板,所以我可以在我的样式中使用它(我只想将它用作可动画元素,但不提供其他功能。)。 ContentControl 是正确的选择吗?还是对此有更合适的控制?
    • 这根本没有回答问题。
    【解决方案2】:

    我认为与您正在寻找的最接近的是ContentControl。它没有自己的布局,也没有默认 UI(除非您对其进行模板化以执行其中一项或两项),但可以采用任何对象,因为它是 Content 属性(WPF UIElement 或其他)并为 CLR 对象提供任何 UI通过分配给其ContentTemplate 属性的DataTemplate。在这方面,它提供了一个注入其他内容的好地方(如 HTML 中的 div)。它也恰好是许多标准内置控件的基类:ButtonListBoxItemUserControlWindow

    WPF 面板不适用于占位符,因为它们无法模板化或通过绑定设置子级,除非它们包含在处理注入绑定内容的其他控件中,例如 ItemsControl-@987654331 @-ItemsPanel 关系。

    【讨论】:

      猜你喜欢
      • 2012-05-15
      • 2015-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      • 2011-07-18
      • 2010-12-20
      相关资源
      最近更新 更多