【发布时间】:2015-04-10 15:44:26
【问题描述】:
我有网格,其中项目被放置在行和列中,但这不是我们需要关心的,因为每个元素都绑定了 X 和 Y 属性,所以我们只需要将元素与正确的坐标匹配List。
当用户单击网格中的一个单元格时,所有其他形成 teo 对角线并穿过所选单元格的单元格都必须改变它们的颜色。
实际上,我设法编写了一些代码,只突出显示第一个对角线,而没有突出显示相反的对角线。 (10x10 方格)
var t = // selected cell that contains X,Y coordinates
var newX = (t.Y > t.X) ? 0 : t.X - t.Y;
var newY = (t.Y > t.X) ? t.Y - t.X : 0;
var maxOffset = ((newX > newY) ? newX : newY);
for (int b = 0; b + maxOffset < GRID_SIZE; b++)
{
// this is selected cell, just skip it
if ((newX + b) == t.X && (newY + b) == t.Y) continue;
// select the cell to highlight
var projection = this.items.Where((i) => (i.X == (newX + b) && i.Y == (newY + b))).First();
}
但我被困在这里。
- 它不适用于矩形矩阵
- 它不会突出显示反向对角线
我想突出显示从选定单元格传递的反向对角线,并且可能使用相同的变量和循环。
【问题讨论】:
标签: c# matrix windows-runtime diagonal