canvas四个可托动的方快,读取他们的顺序顺序必须是从左到右,从上到下 ■ ■
■ ■
四个方快是不对齐的并且这个四个方快是可以托动变换位置的,想过用坐标排序来获取但失败。追加一个问题 将canvas比做是一个页面 canvas里有四个方快,每个方块的信息有x坐标,y坐标,等其它信息 现在我是将方快定义为一个类型 将页面定义为泛型集合 如
list<方快类型> 页面= new list<方快类型> 方快类型 方快= new 方快类型 方快.x=21
方快.y=60
页面.add(方快);
现在问题是当我新一增一页,我怎样来确定那些方快是那页的呢?按我的想法集合是页面的我上面写的就有问题因为我上页是增加一个方快类型就增加了一个集合
我想应该是一个集合代表一个页面,一个集合下面有几个方快对象我是不是可以这样做呢
页面[0].add(方快1)
页面[0].add(方快2)
页面[0].add(方快3)
■ ■
四个方快是不对齐的并且这个四个方快是可以托动变换位置的,想过用坐标排序来获取但失败。追加一个问题 将canvas比做是一个页面 canvas里有四个方快,每个方块的信息有x坐标,y坐标,等其它信息 现在我是将方快定义为一个类型 将页面定义为泛型集合 如
list<方快类型> 页面= new list<方快类型> 方快类型 方快= new 方快类型 方快.x=21
方快.y=60
页面.add(方快);
现在问题是当我新一增一页,我怎样来确定那些方快是那页的呢?按我的想法集合是页面的我上面写的就有问题因为我上页是增加一个方快类型就增加了一个集合
我想应该是一个集合代表一个页面,一个集合下面有几个方快对象我是不是可以这样做呢
页面[0].add(方快1)
页面[0].add(方快2)
页面[0].add(方快3)
List<T>操作元素的函数很多,这里只举了两个例子
还有就是List<T>的函数都不是虚函数,最好从Collection<T>派生public class Block : IComparable<Block>
{
public int X { get; set; }
public int Y { get; set; }
public Page Parent { get; set; }
public int CompareTo(Block other)
{
return X != other.X ? X - other.X : Y - other.Y;
}
}public class Page : List<Block>
{
public new void Add(Block item)
{
item.Parent = this;
base.Add(item);
}
public new void Remove(Block item)
{
item.Parent = null;
base.Remove(item);
}
}
return X != other.X ? X - other.X : Y - other.Y;
这里的X改成Y,Y改成X就是你的那个意思了