WPF で一部のコンテンツをレンダリングするクラスを作成しています。コンテンツのレンダリング方法をユーザーが制御できるようにしたいと考えています。レンダリングは主に線をなでることなので、System.Windows.Forms.Shapes.Line クラスを調べて、どのプロパティを実装する必要があるかを把握することにしました。これにより、ほとんどのStrokeXXXX
プロパティを実装することになりましたが、それぞれがレンダリングに影響を与えるメタデータを必要とするため、多くの単調な作業です。
同僚は、次のように Shape からプロパティを「借用」することを提案しました。
Shape.StrokeThicknessProperty.AddOwner(typeof(MyType));
これはかなり良いアイデアのようです。これを行うと、強制とプロパティ変更コールバックを設定する機能が失われると思いましたが、PropertyMetadata を取るオーバーロードがこれを許可しているようです。私が見ることができる唯一の欠点は、Shape の実装が変更された場合にクラスに影響を与えることですが、.NET インターフェイスが大幅に変更される頻度は不明です。
どう思いますか?これは、よく知られているクラスが必要な動作と安定したインターフェイスを備えている場合にプロパティを定義する適切な近道ですか、それともガソリン風呂にいる間に確実に火を扱う方法ですか?