【问题标题】:Best practices for dimensioning control panels in WPFWPF 中控制面板尺寸标注的最佳实践
【发布时间】:2010-04-01 13:42:24
【问题描述】:

我在 WPF 中定义了一个窗口,在这个窗口中我放了一个“堆栈面板”,在这个面板中我放了一个“选项卡控件”和一些“按钮控件”。

在执行程序时,我希望当我必须使用鼠标调整窗口大小时,堆栈面板和其中的所有控件也可以自动调整大小并与窗口成比例。

我怎样才能得到这个?

谢谢!!

【问题讨论】:

    标签: .net wpf xaml wpf-controls


    【解决方案1】:

    StackPanel 只使用其子控件需要的空间;它确实不会调整到窗口的可用空间。

    如果您想要这种行为,请使用不同类型的面板:如果您只想调整选项卡控件的大小,请使用 DockPanel 并使选项卡控件成为 DockPanel 的最后一个子项。 DockPanel 延伸到父级的可用空间,最后一个子级获得之前子级未使用的所有空间。

    <DockPanel>
        <Button DockPanel.Dock="Bottom" />
        <Button DockPanel.Dock="Bottom" />
        <TabControl>
            ...
        </TabControl>
    </DockPanel>
    

    如果您需要更复杂的间距行为(例如,您希望按钮也按比例占用更多空间),请查看Grid 控件。

    【讨论】:

      【解决方案2】:

      如果您希望所有内容都均匀地放大和缩小,最终可能会得到巨大或微小的控件和字体,请将整个窗口内容(当前为 StackPanel)包装在 Viewbox 控件中。

      【讨论】:

      • Jay,Visual Studio 不允许我将 StackPanel 包装在 ViewBox 中。
      • @vizcaynot 它以何种方式不允许您? &lt;Viewbox&gt;&lt;StackPanel&gt;...&lt;/StackPanel&gt;&lt;/Viewbox&gt; 是完全有效的 XAML——我刚刚在 VS2008 SP1 中尝试过。确保您没有尝试包装 &lt;Window&gt;
      猜你喜欢
      • 2011-10-25
      • 1970-01-01
      • 2014-08-10
      • 1970-01-01
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多