如何使用XAML绘制棋盘?

时间:2015-11-25 00:42:04

标签: c# xaml uwp chess

我正在开发一个项目,要求我使用通用Windows平台(UWP)开发应用程序。我没有开发UWP应用程序的先验知识,XAML对我来说是全新的。值得庆幸的是,我有能力用C#写作。

我正在进行的项目涉及重建Tafl棋盘游戏 - Hnefatafl,Brandubh,Tablut等。

现在,虽然我对我为游戏创建底层逻辑的能力相当自信,但在使用XAML创建界面时,我发现自己很傻。

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

所以我的问题是双重的。

  1. 如何在XAML中创建一个棋盘,该棋盘可以适当缩放到不同的窗口/显示尺寸,并且能够在幕后支持网格(即应用程序可以检测到哪个方块的触摸等)< / LI>
  2. 如何根据所选的游戏类型渲染不同的棋盘?
  3. 道歉,如果这是一个可怕的问题,但谷歌搜索并没有帮助我很多,StackOverflow一直是一个很好的信息来源。

2 个答案:

答案 0 :(得分:0)

您可能想要试用RelativePanel控件,并为图块使用不同颜色的rectangles。这会针对不同的屏幕尺寸调整大小。

答案 1 :(得分:0)

我希望你终于得到了一个能够帮助你朝着正确方向前进的答案。如果您没有在这里提出一些可能会缩小您的研究条款并让您继续前进的想法。我给你工作样品,但你确实提到它是为了一个学校项目:)。

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