【问题标题】:StackPanel vs DataGrid vs DockPanel in WPFWPF中的StackPanel vs DataGrid vs DockPanel
【发布时间】:2011-05-20 23:12:30
【问题描述】:

我需要动态生成一个由“框”(例如 2x2、3x3 等)组成的方阵,每个都包含一个文本框和一个按钮。这些框和文本也将根据窗口的大小调整大小。我应该使用 stackPanel、datagrid 或 dockpanel 来解决这个问题吗?它们的优点或缺点是什么?感谢您的任何建议。

由 WPF、VS2010 开发。

【问题讨论】:

    标签: .net wpf datagrid wpf-controls


    【解决方案1】:

    当您有一定数量的项目希望彼此对齐时,堆栈面板很有用。在动态添加项目时使用起来非常简单且有效,但它的简单性意味着它实际上并没有任何调整大小的能力。

    在将多个不同的项目放置和组织到窗口上时,Dockpanels 很有用,特别是在将项目锚定到顶部、底部、左侧、右侧然后适合中心的剩余空间时(我最近发现它们非常方便当与扩展器一起使用时)。没有真正的缺点,很可能对您有效。

    如果您不需要动态更改布局,我建议您最好使用网格控件,因为您可以将网格拆分为您需要的矩阵。在每一侧使用星号 (*) 意味着所有框将均匀调整大小以适合您拥有的窗口。功能有限,但根据您的要求,网格会覆盖它。

    一个有用的布局教程可以找到here.

    【讨论】:

      【解决方案2】:

      我会使用 Grid 控件来处理它。如果您也告诉它,网格内的列和行将根据网格的大小自动调整大小。此外,网格会自动填充它们所在的区域,这听起来像是您所追求的。

      堆栈面板不是很灵活。基本上只是将一个项目放在另一个旁边,没有自动调整大小。

      如果您的内容应该固定在一边,而其他一些内容要固定在中心,则停靠面板非常适合。

      【讨论】:

        【解决方案3】:

        UniformGrid 面板上进行抢劫。

        【讨论】:

        • UniformGrid 继承了 Panel,类似于 Grid 并且可以包含任意数量的子节点。
        猜你喜欢
        • 2013-11-24
        • 2011-05-18
        • 2018-05-19
        • 1970-01-01
        • 2013-02-26
        • 1970-01-01
        • 1970-01-01
        • 2011-04-29
        • 2011-06-11
        相关资源
        最近更新 更多