WPF / Silverlightアプリケーションを作成するとき、プロパティをスタイル内に配置するか、要素に直接残すかを判断するのに苦労することがあります。決定する際にどのようなガイドラインを使用しますか?
2 に答える
一般的には、スタイルの再利用とプロジェクト全体の編成にかかっていると思います。
それがコントロール(ブラシなど)の多くの異なる要素間で、またはプロジェクト内の多くの異なるコントロールでさえ再利用するスタイルである場合は、明らかにそれを独自のリソースに引き出したいと思うでしょう。より良い編成のために、おそらくこれらの共有スタイルを独自のリソースディクショナリファイルに入れ、MergedDictionariesを使用してそれらを別のコントロールにプルしたいと思うでしょう。BasedOn
属性を使用して、さまざまなスタイル間で非常に便利なカスケード効果を実際に作成することもできます。
特定の要素の「1回限りの」機能となると、スタイル属性を要素に直接保持するのは問題ないと思います。共有する必要がなく、スタイルが1つの要素(特定の境界線、マージンなど)に固有である場合は、要素に直接保持する方がはるかに簡単で読みやすくなります。
とても良い質問です。プロパティをスタイルに移動する状況は2つあります。
1)混雑しているプロパティ-混雑しているプロパティは、要素をカスタマイズするにはプロパティが多すぎることに他なりません。たとえば言ってください。テキストブロックがあり、ほとんどすべてのプロパティをカスタマイズしたい場合。次に、読みやすさが低下します。トリガーのようなものがある場合も同様です。混雑しすぎます。その時までに、私はそれらをスタイルに移していました。
2)繰り返し使用されるスタイル-コントロールに適用されるのと同じプロパティのセットを適用したい場合、これは明らかなケースです。通常、これはx:key
またはで行いTargetType
ます。
HTH