我现在的空闲时间项目,为了深入WPF MVVM,是我童年时常玩的旧拼图的“数字”副本。它基本上是一个简单的拼图,其中一个必须用不同类型的碎片填充给定的空间,以便整个空间被填充。但随着六角形空间的额外扭曲。
只是为了说明,这就是WPF目前的样子:
http://img190.imageshack.us/img190/2553/atomgridmolecule.png
所以基本上有许多预定义的部分(如上面的橙色部分)可以“插入”给定的网格(上面的灰色部分)。
所以结果看起来像这样:
http://img30.imageshack.us/img30/2553/atomgridmolecule.png
我希望用户(可能只有我^^)能够将碎片拖放到网格中。我希望拖动看起来自然意味着在拖动时具有正确的偏移量取决于用户单击该块的位置。
网格和分子都是相同的控件,是从WPF Panel类派生的自定义六边形面板控件。
问题在于如何进行“插入”,特别是“拔出”。
关于如何解决这个问题,我有两个想法:
我应该选择哪种方法?更重要的是我如何在WPF中实现这一点?特别是使用干净的MVVM方式。
非常感谢你的帮助!任何意见都非常感谢!
编辑:
谢谢Aran,我也这么认为。
但是我现在该如何实现呢?
答案 0 :(得分:1)
我倾向于选择第二个想法。一个简单的捕捉就是测试你拖动的圆的中心点是否在网格上一个圆的公差因子内,如果是这样的话就会捕捉它们。