我是WPF的新手,并尝试在UniformGrid中的元素之间添加1像素边框或空格。我怎样才能做到这一点?我尝试为每个子元素添加一个边距,但是在中间的单元格之间创建了一个两像素边框。我可以在顶部和左侧添加边距,但这会使底部和右边的单元格没有外边距。
我尝试使用谷歌搜索,可能没有使用正确的条款。
答案 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:DataGrid
与GridLinesVisibility=DataGridGridLinesVisibility.All
。您可以在此处使用VerticalGridLinesBrush
和HorizontalGridLinesBrush
选项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>