2010-12-18 9 views
0

件名に複数の投稿を読みましたが、まだそれを動作させることはできません。wpfユーザーコントロールを継承する構文がわかりません

私は2つのユーザーコントロールslidertype1とslidertype2をslidercommontypeから継承する必要があります。これらはすべて同じ名前のペイコムにあります。この単純なユースケースの構文を誰かが知っていますか?

http://jamescrisp.org/2008/05/26/wpf-control-inheritance-with-generics/

からインスパイア私が試した:

<namespacecommon:slidercommontype x:Class="namespacecommon.slidertype1"> 

を私はnamespacecommonだ:slidercommontypは、XML名前空間に存在しません。

+1

これまでに試したことがない構文はありますか?そして、どの言語 - C#またはVB.NET? –

+0

私は上記の感謝を更新しました。 – user310291

答えて

3

基本クラスに関連付けられているXAMLファイルがない限り、かなり簡単です。 XAMLを使用してユーザーコントロールの視覚的な側面を組み込むことは、実際にサポートされているシナリオではありません。

は自分のクラスSliderCommonTypeを作成して、と言った(私はSliderBaseか何かそれを呼び出すだろうが。)

namespace MyControls { 
    public class SliderBase : UserControl { 
    } 
} 

そして、それに基づいて2つのコントロールを作成します。私は一つの例を示し、もう一つは明白でなければならない。

<Local:SliderBase x:Class="MyControls.SliderType1" 
        xmlns:Local="clr-namespace:MyControls"> 
</Local:SliderBase> 

そしてビハインドコードは次のようになります

namespace MyControls { 
    public class SliderType1 : SliderBase { 
    } 
} 

あなたのXAMLファイルが順番に必要と<Local:SliderBase><UserControl>要素を変更する必要があり、基本クラスを参照するために持っているということでキーポイントXAML名前空間のインポート。

既定のテンプレートを使用してUserControlを追加すると、作成したコードを変更して上記の変更が反映されます。それを最初から作成しようとするよりはるかに簡単です。

覚えておくべき最後のこと - 派生したコントロールでビジュアルデザイナーを使用するには、アプリケーションを正常にコンパイルする必要があります。これは、設計者が設計時にSliderBaseをインスタンス化できる必要があるためです。

+0

ありがとうございます。 – user310291

関連する問題