【问题标题】:Resizing controls in sync with window size与窗口大小同步调整控件大小
【发布时间】:2012-03-16 18:59:52
【问题描述】:

在过去的几天里,我在各处阅读了数十篇关于此的帖子。 我有几个 WPF 表单,我想在大多数分辨率下使用,问题是表单中的控件在尺寸增加时会错位或看起来很糟糕。

目前我正在使用 Grids,这些都可以,并且可以将我的控件大部分保留在适当的位置,但它们需要很长时间才能完成(我有大约 15 个应用程序)并且看起来与原始设计相似,例如一些控件看起来仍然被拉伸并且设计受到影响。

这是我的一个网格的示例

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="156*" />
    <ColumnDefinition Width="323*" />
</Grid.ColumnDefinitions>

<Grid.RowDefinitions>
    <RowDefinition Height="72" />
    <RowDefinition Height="49" />
    <RowDefinition Height="49" />
    <RowDefinition Height="43" />
    <RowDefinition Height="91" />
    <RowDefinition Height="90" />
    <RowDefinition Height="90" />
    <RowDefinition Height="92" />
    <RowDefinition Height="50*" />
</Grid.RowDefinitions>

我真正想要的是一个好的布局和控件来提供一个像样的用户界面,还有什么其他的选择来调整窗口内容的大小?如果有更好的方法可以做到这一点,我什至愿意回到 Windows 窗体,因为网格似乎限制了控件。我实际上是在寻找与应用程序最初以默认分辨率(大约 500x500)加载时完全相同的外观。

非常感谢您的帮助。

【问题讨论】:

  • 我会说看看Panel 类并尝试将它们组合起来以实现您想要的。
  • 那么你上面的列和行定义有什么问题?显然,非星形行将保持相同的高度,但其他一切都应该缩放。是单元格内容的问题吗?在这种情况下,您也需要显示他们的标记。

标签: c# wpf xaml


【解决方案1】:

您的列和最后一行使用星号大小,这将导致单元格拉伸以填充可用空间。根据 Horizo​​ntalAlignment 和 VerticalAlignment 的值,在控件上(默认值因控件而异),它们也可以拉伸以填充所有可用空间(或者它们可以居中,或仅在一个方向上拉伸)。

我怀疑星级大小是无意的,但它很可能是您想要的,只是以不同的方式使用。您可能还会发现“自动”调整大小很有用。这里有关于网格大小选项的说明:http://blogs.msdn.com/b/wpfsldesigner/archive/2010/01/14/wpf-silverlight-layout-controls.aspx#grid

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-30
    • 2015-01-19
    • 2012-05-17
    • 2019-05-15
    • 1970-01-01
    • 2013-11-30
    • 2012-10-29
    • 1970-01-01
    相关资源
    最近更新 更多