WPF页面中的网格

时间:2019-02-19 06:14:42

标签: wpf

驻留在Window和Page中的Grid有不同的行为吗?

窗口的Xaml代码

<Grid ShowGridLines="True">
        <Grid.RowDefinitions>
            <RowDefinition Height="30"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="30"/>
        </Grid.RowDefinitions>


        <Grid Grid.Row="1" ShowGridLines="True">
            <Grid.RowDefinitions>
                <RowDefinition Height="*"/>
                <RowDefinition Height="*"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <Button Grid.Column="1">

            </Button>
            <Button Grid.Column="0">

            </Button>
            <Label Grid.Row="1" Width="50">

            </Label>
            <DatePicker Grid.Column="0" Grid.Row="2">

            </DatePicker>
        </Grid>
    </Grid>

Page的Xaml代码

 <Grid ShowGridLines="True">
        <Grid.RowDefinitions>
            <RowDefinition Height="30"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="30"/>
        </Grid.RowDefinitions>


        <Grid Grid.Row="1" ShowGridLines="True">
            <Grid.RowDefinitions>
                <RowDefinition Height="*"/>
                <RowDefinition Height="*"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <Button Grid.Column="1">

            </Button>
            <Button Grid.Column="0">

            </Button>
            <Label Grid.Row="1" Width="50">

            </Label>
            <DatePicker Grid.Column="0" Grid.Row="2">

            </DatePicker>
        </Grid>
    </Grid>

这两个代码相同,但是我无法在wpf Page的网格列和行内放置控件。在wpf窗口中,它按预期工作。我在做什么错了?

1 个答案:

答案 0 :(得分:0)

在窗口或页面内使用网格无关紧要。此外,您的代码看起来并不像在列和行中放置任何内容。大多数WPF控件通常使用Stretch作为其默认对齐方式值,因此将填充包含它们的整个单元格。

要在网格行/列单元格中定位控件,请将对齐方式设置为“ Left&Top”之类,然后使用Margin属性定位。

<Button Grid.Column="1" Grid.Row="0"
        HorizontalAlignment="Left" VerticalAlignment="Top"
        Margin="75,50">
</Button>