网格列内的WPF线定位

网格列内的WPF线定位,wpf,xaml,line,Wpf,Xaml,Line,我有一个网格,有3个大小相等的列 <Grid.ColumnDefinitions> <ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/> <ColumnDefinition Width="1*"/> </Grid.ColumnDefinitions> 我想画一条水平线,这样它将从第一列的中间开始,并在最后一列的中间结束 <Line Gr

我有一个网格,有3个大小相等的列

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="1*"/>
    <ColumnDefinition Width="1*"/>
    <ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
我想画一条水平线,这样它将从第一列的中间开始,并在最后一列的中间结束

<Line Grid.ColumnSpan="3" Stretch="Fill" 
      X1="0" X2="1" Y1="0" Y2="0"
      VerticalAlignment="Center" HorizontalAlignment="Stretch"/>
所需结果应为下图底部所示的线条

将页边距硬编码到行可能在这里不起作用


如何才能做到这一点?

这可能不是最好的方法。。。但是如果你用边界而不是线呢?然后使用颜色/透明渐变设置背景,在1/6和5/6点设置硬停止

或者,您可以使用6个等间距的列,并从第2列开始使用colspan 4。不过,这将对网格中的其他项目产生影响

<Border Grid.ColumnSpan="3" BorderThickness="0" Height="5">
        <Border.Background>
            <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
                <GradientStop Color="Transparent" Offset="0.1666"/>
                <GradientStop Color="Transparent"  Offset="0.8334"/>
                <GradientStop Color="Red" Offset="0.1667"/>
                <GradientStop Color="Red" Offset="0.8333"/>
            </LinearGradientBrush>
        </Border.Background>
    </Border>
创建嵌套网格:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="1*"/>
        <ColumnDefinition Width="1*"/>
        <ColumnDefinition Width="1*"/>
    </Grid.ColumnDefinitions>
    <Grid Grid.ColumnSpan="3">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="1*"/>
            <ColumnDefinition Width="4*"/>
            <ColumnDefinition Width="1*"/>
        </Grid.ColumnDefinitions>
        <Line Grid.Column="1" Stretch="Fill" X2="1"/>
    </Grid>
</Grid>