请帮助最好的方法来扩展WPF内置类

时间:2011-05-17 15:21:23

标签: wpf performance extensibility

我想用一些额外的专有属性扩展Shapes.Rectangle WPF内置类。我可以用3种不同的方式做到这一点:

  1. 声明我自己的包装类,并将WPF Rectangle作为其成员之一。
  2. 使用我的专有属性声明我自己的struct / class,并将其放在Rectangle.Tag字段中。
  3. 为每个专有属性声明WPF依赖项属性,并使用Rectangle.SetValue()& Rectangle.GetValue()方法。
  4. 从性能的角度来看,最好的方法是什么(速度,内存消耗),在每个时刻只有部分我的专有属性具有有意义的价值?

    感谢。

2 个答案:

答案 0 :(得分:1)

您可以创建一个扩展行为的行为。

这是向现有元素添加行为的最佳和最简单的方法(和Blend友好)。 它现在是WPF4的一部分,你可以在添加对System.Windows.Interactivity的引用之后使用它。

答案 1 :(得分:0)

你打算在任何地方使用你的“派生”派生矩形,还是有时会成为一个矩形,有时甚至是你的?

如果您每次都要使用某些属性,我会说您应该创建一个包装类,并尽可能保持它的轻量级。这将使您的代码尽可能干净。我不认为表演会成为一个问题,除非你做了成千上万的这些。如果你是,那么你可能还有其他问题! :)