WPF:使用百分比在元素中间距

时间:2017-10-31 00:34:34

标签: wpf

我正在尝试创建一个带有一些元素的网格,但是,我看到它们之间有一个空格(我的窗口是响应的),我在WPF中创建了一个简单的示例来显示问题:

    <Grid Background="Red">
        <Grid.RowDefinitions>
            <RowDefinition Height="0.20*" />
            <RowDefinition Height="0.80*" />
            <RowDefinition Height="0.20*" />
        </Grid.RowDefinitions>
        <Grid Grid.Row="0" Background="Green" Margin="0">
            <TextBlock Text="Header"></TextBlock>
        </Grid>
        <Grid Grid.Row="1" Background="Green" Margin="0">
            <TextBlock Text="Body"></TextBlock>
        </Grid>
        <Grid Grid.Row="2" Background="Green" Margin="0">
            <TextBlock Text="Footer"></TextBlock>
        </Grid>
    </Grid>

而且,让我告诉你结果:

Result

正如您所看到的,单元格之间有一个空格(背景为红色),在我的实际场景中,我无法将背景设置为绿色(在此示例中可能是一个解决方案)。

有没有办法在没有这些空格的情况下填充单元格(并且有响应)?

1 个答案:

答案 0 :(得分:0)

我发现这个问题是由于某些渲染问题造成的。如果您使用SnapsToDevicePixels="True",它应该可以解决您的问题:

<Grid Background="Red" SnapsToDevicePixels="True">
    <Grid.RowDefinitions>
        <RowDefinition Height="0.20*" />
        <RowDefinition Height="0.80*" />
        <RowDefinition Height="0.20*" />
    </Grid.RowDefinitions>
    <TextBlock Text="Header"  Grid.Row="0" Background="Green"/>
    <TextBlock Text="Body"  Grid.Row="1" Background="Green" />
    <TextBlock Name="Box512" Text="Footer" Grid.Row="2" Background="Green"/>
</Grid>