你应该设定
UseLayoutRounding
在网格上为true,而不是以编程方式调整按钮的大小。
但是,通过使用uniformgrid,可以大大简化代码
<Window ...>
<UniformGrid x:Name="grid"/>
</Window>
并添加如下按钮:
public MainWindow()
{
InitializeComponent();
SetSize(40, 40);
}
private void SetSize(int x, int y)
{
grid.Children.Clear();
grid.Columns = x;
for (int i = 0; i < x * y; i++)
{
grid.Children.Add(new Button
{
BorderThickness = new Thickness(1),
BorderBrush = Brushes.Gray,
Background = Brushes.DarkGray,
Foreground = Brushes.DarkGray,
Content = ""
});
}
}