我正在做一个棋盘游戏。为了构建电路板,我执行以下操作:
// adapted from http://code.msdn.microsoft.com/windowsapps/Reversi-XAMLC-sample-board-816140fa/sourcecode?fileId=69011&pathId=706708707
// This is shit code.
async void PlayGame_Loaded(object sender, RoutedEventArgs e)
{
foreach (var row in Game.ALL_ROWS)
{
boardGrid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(BOARD_GRID_SIDE_LENGTH) });
}
var maxColIndex = Game.ALL_ROWS.Max();
foreach (var col in Enumerable.Range(0, maxColIndex))
{
boardGrid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(BOARD_GRID_SIDE_LENGTH) });
}
// ...
}
(请随意提出替代方法。)
基本上,我根据预设的高度和宽度创建一堆行和列,并用板空间填充这些行和列。当我设置行和列的长度以适合我的笔记本电脑时,这可以正常工作,但显然它不适用于具有不同分辨率的设备。(例如,它在 Surface RT 上被截断。)我该如何解决这个问题?我可以指定作为父容器一部分的边长吗?这里的最佳做法是什么?