在Windows Phone 7 Silverlight应用程序中,我必须操纵矩阵内的方形对象。我必须对它们进行的唯一操作是改变它们的填充颜色,但我必须在快速连续循环中进行,因此它必须是高效的。
显然这个要求比Silverlight更像XNA,但是我已经权衡了赞成/反对,并决定使用Silverlight,因为在SL中而不是在XNA中有其他更容易的东西。
显而易见的方法是创建一个Grid并使用Rectangle对象以编程方式填充它(这样我就可以保持对二维数组中每个Rectangle的引用)。 这在Windows / Web Silverlight中运行良好,但我担心在更改颜色时迭代整个Rectangle数组可能在手机上太慢(例如,我不需要DependencyObject的所有功能,但是矩形似乎是具有背景颜色的最基本的对象。)
有没有比Grid + Rectangles更好的方法?
答案 0 :(得分:2)
很难说没有看到应用程序,但与设置foreach循环(或其他)相反,我会创建某种类型的对象(例如GameBoard),并将每个正方形的颜色Bind()绑定到属性游戏板。然后在GameBoard中创建一些函数(例如SetSquareColors),并使用参数立即传入所有方块。
GameBoard.SetSquareColor(X1Y1,X2Y1,X3Y1,X1Y2,X2Y2,X2Y3,X1Y3,...)
或者那些东西......