WPF网格的底部边框

47

我想在网格的每一行上设置底部边框,但是只知道如何在每个单元格周围放置四个边框..

<Grid Height="174" HorizontalAlignment="Left" Margin="23,289,0,0" Name="grid2" VerticalAlignment="Top" Width="730">
    <Grid.RowDefinitions>
        <RowDefinition Height="45" />
        <RowDefinition Height="25" />
        <RowDefinition Height="25" />
        <RowDefinition Height="25" />
        <RowDefinition Height="25" />
        <RowDefinition Height="25" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="255" />
        <ColumnDefinition Width="95" />
        <ColumnDefinition Width="95" />
        <ColumnDefinition Width="95" />
        <ColumnDefinition Width="95" />
        <ColumnDefinition Width="95" />
    </Grid.ColumnDefinitions>
</Grid>

对于我使用的另一个需要四个边框的网格,我正在使用

<Border Grid.Column="0" Grid.Row="0" BorderBrush="#61738B" BorderThickness="1" />

顺便提一下,如果有关系的话,网格的内容包括标签、文本框等。

2个回答

119

在边框控件上,你可以使用 BorderThickness="0 0 0 1" 只显示底部的边框。

顶部和底部的边框厚度为5,左右边框的厚度为0

BorderThickness="0 5"

顶部和底部的边框厚度为0,左右边框的厚度为5

BorderThickness="5 0"

边框厚度 - 左: 1, 顶部: 2, 右: 3, 底部: 4

BorderThickness="1 2 3 4"


哦,天啊,原来如此简单?非常感谢!另一个快速的问题——有没有办法在不指定Grid.Column的情况下设置整行的边框? - Marko
1
没问题!据我所知,我不知道你是否可以在RowDefinition中定义行的边框。如果你想让边框跨越多个列出现在特定的行中,你可以使用Grid.ColumnSpan。不确定这是否是你想要的,但希望能有所帮助。 - Mark Carpenter
谢谢@Pwninstein,Grid.ColumnSpan很有帮助,它可以在每一列上放置一个边框,现在我只需要想出如何在每一行上重复而不必使用6个不同的<Border>声明 :) - Marko
是啊...如果是我写的话,我可能会最终拥有6个不同的“边框”,我也不知道有什么方法可以做到这一点(如果有人知道的话,我很乐意听听!) - Mark Carpenter
非常感谢!我也在寻找那个。 - Alexander Prokofyev
我已经将HorizontalAlignment设置为Right,这些边框仅针对文本长度绘制,如果我删除它,边框就会正常。 - digz6666

0

我曾经成功地在整个行上放置了底部边框,方法是在Grid节点周围包含一个Border节点,并设置BorderThickness="0 1 0 1"。就像这样:

Border Style="{StaticResource ItemBorderStyle}" BorderThickness="0 1 0 1"
            Grid Style="{StaticResource GridItemStyle}"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接