2010-11-27 10 views
1

私はWPFのシーンが比較的新しく、コントロール間でスタイルが再利用される方法を理解する上で問題があります。WPFスタイルのリユース

これは私の状況ですが、私はトグルボタンが必要なコントロールを作っています。私はこのToggleButtonをTreeViewItemの 'expand'ボタンのようにしたいと思います。私自身のボタンにTreeViewItemのボタンスタイルを適用する方法は?

私の検索では、XAMLをコピーしなければ不可能だと感じていますが、なぜ誰かが限定されたUIフレームワークを作成するのは自分自身を正当化できません。

ありがとうございます。

答えて

2

デフォルトスタイル/テンプレートを何かから取得し、XAMLの別のコントロールに適用する方法があるかどうかはわかりませんが、コードでそのスタイル/テンプレートを適用できる可能性があります。それはテンプレートのボタン部分を取得したいだけで、テンプレートの一部だけをハックするのではなく、新しいスタイルを書くだけで簡単です(クリーナーは言うまでもありません)。

ボタンを再作成する際の問題は、押されたときに、そのボタンが押されたときと同じデフォルトの押された外観に戻ります。あなたがしたいことは、ボタンのControlTemplateを変更することです。

私がWPFで作業を開始したとき、私はthis tutorial がプロセスの非常に有用な紹介であることを発見しました。

ShowMeTheTemplateのコピーを入手して、コントロールのデフォルトテンプレートのほとんどにアクセスできるようにして、基本的な作業を大幅に節約し、コントロールの仕組みを理解できるようにすることをおすすめします。

コントロールテンプレート(またはそのようなスタイル/テンプレート)を作成したら、それをリソースディクショナリに保存して、StaticResourceマークアップ拡張を使用して関連プロパティから参照することでコントロールに適用できます。

例:(たとえば、App.Resourcesのためのリソースディクショナリでは)

ボタンで使用
<Style x:Key="myStyle" TargetType="Button"> 
    <Setter Property="Width" Value="70" /> 
</Style> 

<Button Style="{StaticResource myStyle}" /> 

希望、これはあなたが始めるのに役立ちます。

+0

あなたの答えをありがとう! showMeTheTemplateについてのヒントは参考になります。私は、MVVMのために設計された環境では、スタイルやマークアップを分離することさえ考えていないというのは非常に奇妙だと思います... –

関連する問題