ボードゲームを作っています。ボードを構築するために、私は次のことを行います。
// 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では切り捨てられます。)これを回避するにはどうすればよいですか?親コンテナの一部である一辺の長さを指定できますか?ここでのベストプラクティスは何ですか?