2011-10-21 6 views
0

私のアプリケーションの2つの異なる場所、モーダルダイアログボックスとして1つの場所、別のメニューに埋め込まれた1つの場所に同様の外観のダイアログを表示する必要があります。WPF:2つの異なるシナリオのユーザーコントロールの書式設定にスタイルを使用できますか?

WPFの私の限られた理解から、私は単一のUserControlを記述し、両方のシナリオでその色とフォントをカスタマイズできるように見えます。ただし、変更はもう少し広範囲ですが、要素位置の一部(TextBoxなど)は相対位置が異なります。

これをスタイルで行うことができない場合や、WPFでこれを行うより適切な方法があるかどうかはわかりません。最悪の場合、私は2つの全く異なるUserControlを書くことができますが、それはメンテナンス性の面で非常に悪いので、私はそれを避けたいと思います。

答えて

0

もちろん、スタイルやテンプレートで行うことができます。ただ、スタイルの各に鍵を与え、正しい場所で右のスタイルにアクセスするためのキーを使用します。

<YourUserControl Style="{StaticResource firstStyle}"/> 
+0

これは彼を助けることはありません。彼は、スタイルにいくつかの変更が必要なUserControlの配置に基づいて、いくつかのセッター値をカスタマイズする必要があります。 –

+0

私はUserControlの配置に基づいている必要はないと思っていますが、Dennisが推奨し、自分のコントロールのインスタンスごとに異なるスタイルを設定することができます。しかし、私が混乱しているのは、スタイルに基づいてコントロールの位置を設定する方法です。 – Locksleyu

0

あなたは(私はMVVMライトを好む)MVVMのようなパターンを使用している場合、これは行うことは非常に簡単です。公開するすべてのデータと動作をキャプチャした1つのViewModelを作成し、同じビューモデルを使用して2つのビューを必要な方法で作成します。

このシナリオは、MVVMパターンの背後にあるコアインテントの1つです。行動/配管を2度書くのは「悪い」という意見ですが、ビューは異なりますので、そこでの再利用は違反していません。

関連する問題