如何定义UI以便在调整Window大小时按钮不会移动?

时间:2014-01-17 15:38:14

标签: wpf vb.net

我希望我的按钮尺寸不会增长,只能停留在同一位置。这里有两张图片说明:

enter image description here enter image description here

2 个答案:

答案 0 :(得分:0)

以下是有关可在WPF中使用的不同容器的信息:

http://msdn.microsoft.com/en-us/library/bb514628(v=vs.90).aspx

我假设您不想要在第二个屏幕截图中看到的行为。如果你真的希望所有东西都保持在同一个位置(意味着调整窗口大小不会移动按钮),你可以使用每个项目的硬坐标网格。然而,正如Sheridan指出的那样,这不是一个好主意。 WPF包括对控件布局的出色支持。在我的开发中,我经常使用星形尺寸的网格。一个想法基于你写的:

<Grid>
 <Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="*" />
    <RowDefinition Height="Auto" />
 </Grid.RowDefinitions>
 <Grid.ColumnDefinitions>
    <ColumnDefinition />
 </Grid.ColumnDefinitions>
</Grid>

这将允许您将控件放置在窗体的顶部和底部,并在调整大小时表现良好。 (再次,不清楚这是否是你想要的。)从这里,你可以进一步采取这两个列,并在每个列中都有一个按钮。从那里,你可以玩边缘。

答案 1 :(得分:0)

在WPF中有很多方法可以做到这一点。这可能是最简单的:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition />
        <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
    <Button Grid.Row="0" Grid.Column="0" Content="Button" Padding="20,5" Margin="10" />
    <Button Grid.Row="0" Grid.Column="2" Content="Button" Padding="20,5" Margin="10" />
    <Button Grid.Row="2" Grid.Column="0" Content="Button" Padding="20,5" Margin="10" />
    <Button Grid.Row="2" Grid.Column="2" Content="Button" Padding="20,5" Margin="10" />
</Grid>