如何使用 XAML 绘制棋盘?

How do I Draw a Chessboard using XAML?

我正在从事一个项目,该项目要求我使用通用 Windows 平台 (UWP) 开发应用程序。我之前没有开发 UWP 应用程序的知识,XAML 对我来说是全新的。不过值得庆幸的是,我很擅长用 C# 编写。

我正在进行的项目涉及重新创建 Tafl Board 游戏 - Hnefatafl、Brandubh、Tablut 等

现在,虽然我对自己为游戏创建底层逻辑的能力相当有信心,但在使用 XAML.

创建界面时,我发现自己被蒙蔽了

需要渲染几种不同的棋盘:7x7、9x9 和 11x11。

所以我的问题有两个。

  1. 我如何在 XAML 中创建一个棋盘,它将适当地缩放到不同的 window/display 大小并能够在幕后得到网格的支持(即应用程序可以检测哪个方格板被触摸等)
  2. 如何根据所选游戏类型渲染不同的棋盘?

如果这是一个糟糕的问题,我深表歉意,但谷歌搜索并没有帮到我很多,而 Whosebug 一直是一个很好的信息来源。

您可能想尝试 RelativePanel control and use different coloured rectangles 的磁贴。这将针对不同的屏幕尺寸调整大小。

我希望你最终得到了这个问题的答案,这让你朝着正确的方向前进。如果您没有,这里有一些想法可能会缩小您的研究范围并让您继续前进。我会给你工作样本,但你确实提到它是用于学校项目:)。

  1. 使用列表框和操作基本样式可以相对 好方法,而且非常可重复使用。这也满足了你的 知道当前选择为列表框的图块的要求 已经处理了。我将这种技术用于数独板 不同地区有不同的颜色。
  2. 创建一个具有列数和属性的用户控件 你的董事会需要的行,然后动态添加行和 列到网格。如果您的游戏模型有一个方块列表并且 每个图块都有一列和一行 属性,可以映射到 网格的列和行索引,您可能会绑定到它 很容易。
  3. 创建一个处理列的自定义控件, c# 中板本身的行和其他方面以及渲染 在 XAML。我个人回避这个只是因为现有的 控件已经非常灵活,只要有足够的独创性,您就可以 使用开箱即用的控件创建您需要的内容。