交互式形状的设计考虑因素

时间:2012-11-29 09:43:39

标签: wpf xaml

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

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

一些问题

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

1 个答案:

答案 0 :(得分:0)

一些想法:

  1. 为什么使用网格?看起来Canvas更符合您的需求。

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

  3. 您必须使用公共Style属性定义通用形状控件,最终用户可以在其中声明自己的样式。