1

我有Grid一个任意数量(可能是数千个)填充形状的状态(鼠标悬停,选择,拖动......)。如果多个对象重叠,悬停/单击它们应选择其中心点最接近鼠标位置的对象。

考虑到性能和代码设计,解决这个问题的最佳方法是什么?

一些问题

  1. 我应该在后面的代码中创建形状并将它们添加到某些网格的子项中,还是应该将一些巧妙的 XAML 绑定到某些对象的列表(有教程会很好)?
  2. 我想处理鼠标事件。每个形状是否应该有自己的鼠标处理程序,或者我应该为父网格有一个鼠标处理程序,我在其中寻找最近的形状?
  3. 形状样式应该可由用户编辑。我应该在后面的代码中将它们定义为资源或属性吗?
4

1 回答 1

0

一些想法:

  1. 为什么要使用网格?看起来Canvas会更好地满足您的需求。

  2. 使用路由事件。只需处理容器的事件(鼠标xxx,然后找出鼠标所在的位置以及必须接收动作的形状是什么)。

  3. 您必须定义一个具有公共 Style 属性的通用形状控件,最终用户可以在其中声明自己的样式。
于 2012-11-29T09:50:27.190 回答