WPF UniformGrid中单元格之间的边界

时间:2011-10-03 21:56:10

标签: c# wpf

我是WPF的新手,并尝试在UniformGrid中的元素之间添加1像素边框或空格。我怎样才能做到这一点?我尝试为每个子元素添加一个边距,但是在中间的单元格之间创建了一个两像素边框。我可以在顶部和左侧添加边距,但这会使底部和右边的单元格没有外边距。

我尝试使用谷歌搜索,可能没有使用正确的条款。

3 个答案:

答案 0 :(得分:3)

你说过你尝试将Margin设置为1,这样每个元素周围总共有2个像素。

所以把它切成两半;将项目的边距设置为0.5。你还想在UniformGrid本身添加一个0.5的边距,所以一切都最终排列在像素边界上。

(最左边的一列项目将具有UniformGrid的0.5像素左边距,加上项目的0.5像素边距,总共1个像素。然后在第一列和下一列之间,你将拥有第一列列的0.5像素右边距,再加上下一列的0.5像素左边距,所以再一次你在列之间总共有1个像素。它很好用。)

答案 1 :(得分:2)

选项1:具有Grid属性的ShowGridLines面板,但只有虚线。

选项2:DataGridGridLinesVisibility=DataGridGridLinesVisibility.All。您可以在此处使用VerticalGridLinesBrushHorizontalGridLinesBrush

指定不同的线条画笔

选项3:自己的面板

我相信有更多选择,但我知道我列出的那些。

答案 2 :(得分:1)

这是仅限标记的解决方案,您可以创建一个DP - 边框宽度并绑定到它,如果您需要帮助,请给我们一个喊叫:

<Window x:Class="Margins.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:s="clr-namespace:System;assembly=mscorlib"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Border Background="Green" Padding="0,0,10,0" HorizontalAlignment="Center" VerticalAlignment="Center">
            <StackPanel Orientation="Horizontal">
                <Rectangle Fill="White" Width="100" Height="100" Margin="10,10,0,10"/>
                <Rectangle Fill="White" Width="100" Height="100" Margin="10,10,0,10" />
                <Rectangle Fill="White" Width="100" Height="100" Margin="10,10,0,10" />
                <Rectangle Fill="White" Width="100" Height="100" Margin="10,10,0,10" />
            </StackPanel>
        </Border>
    </Grid>
</Window>