我正在编写一个在 WPF 中呈现一些内容的类,我想让用户控制内容的呈现方式。渲染主要是描边线,所以我决定查看 System.Windows.Forms.Shapes.Line 类来了解我可能想要实现的属性。这导致我实现了大部分StrokeXXXX
属性,这是一项繁重的工作,因为每个属性都需要元数据来影响渲染。
一位同事建议我只是“借用” Shape 的属性,如下所示:
Shape.StrokeThicknessProperty.AddOwner(typeof(MyType));
这似乎是一个不错的主意。我认为这样做我会失去设置强制和属性更改回调的能力,但看起来采用 PropertyMetadata 的重载允许这样做。我能看到的唯一缺点是如果 Shape 的实现发生变化,它会影响我们的类,但我不确定我期望 .NET 接口多久发生一次显着变化。
你怎么看?当知名类具有您想要的行为和稳定的界面时,这是定义属性的一个不错的捷径,还是在汽油浴中玩火的可靠方法?