2) 佈局網格
為適應不同 GridSize,選擇 Grid 做主體,載入地圖後依數據動態添加行列:
grid = new Grid()
{
ShowGridLines = ShowGrid.IsChecked.Value,
Width = width, Height = height,
HorizontalAlignment = HorizontalAlignment.Left,
VerticalAlignment = VerticalAlignment.Top
};
GridWidth.Text = gridWidth.ToString();
GridHeight.Text = gridHeight.ToString();
for (int x = 0; x < grid.Width / gridWidth; x++)
grid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(gridWidth) });
for (int y = 0; y < grid.Height / gridHeight; y++)
grid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(gridHeight) });
scrollViewer.Content = grid;
ShowGridLines 顯示單元格邊框:

遺憾:啟用網格邊框嚴重影響介面執行緒效能,稍顯雞肋,未來嘗試其他高效方式。