1

我正在用 C# 和 WPF 编写一个 2D 图形工具,我AdornersShapes绘制到Canvas.

我希望装饰者在一个形状被认为是“选定的”时突出显示,我目前正在使用MouseDownMouseUp事件。

但是,用户可以选择多个形状,因此并非所有形状都会同时接收鼠标事件。

我有一个管理绘图的类,它包含一个List选定的形状。让装饰者访问这些数据的最佳方法是什么,以便他们可以查看是否选择了他们的装饰元素?

我考虑过一些事情:

  • 制造List全球 - 坏主意
  • 对每个形状进行子类化以添加“选定”属性 - 需要更改对我类中形状的所有引用
4

1 回答 1

1

您可以在形状上设置附加的依赖属性 - 然后您可以在选择一个属性时设置该属性。装饰器可以将可见性绑定到形状上的属性,因此您可以自动设置可见性。

您还可以使用形状上的 Tag 属性来存储值 - 这是旧的做法:)

于 2010-11-16T11:19:47.127 回答