如何摆脱保证金定位?

时间:2015-06-30 15:03:53

标签: c# wpf

我只是对我在wpf中使用元素缩放/定位所面临的问题提出了一般性问题。因为我是wpf的新手,我只是在应用程序的可视化预览中拖动和重新调整元素。当然,这已经为每个元素设置了边距,现在当我调整主窗口大小或以全屏模式运行应用程序时,所有内容都会混乱并重叠。我现在明白了保证金的作用,它是非常静态的。将其更改为某些动态定位(网格行/列)的最佳方法是什么。我现在不知道。

2 个答案:

答案 0 :(得分:1)

为了在网格的第二行和第二列中放置一个按钮,您可以使用以下XAML代码。

在示例中值得注意的是* - 定义与其他* - 尺寸相关,因此1*的大小只有2*的一半,因此上。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="1*" />
        <RowDefinition Height="2*" /> <!-- Make this row double in height -->
        <RowDefinition Height="1*" />
        <RowDefinition Height="1*" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" /> <!-- You don't need a number either -->
        <ColumnDefinition Width="*" /> <!-- All columns are the same size -->
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Button Grid.Row="1" Grid.Column="1" Content="Hello" />
</Grid>

答案 1 :(得分:0)

你应该使用网格

在网格中,您可以定义行的高度,列的宽度......它看起来像这样

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="100" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
        <RowDefinition Height="5*" />
    </Grid.RowDefinitions>
</Grid>

您应该查看this article