2012-02-07 10 views
2

画像にいくつかの基本的なプロパティを追加したいと思います。私は通常これを行うことでこれを行うでしょうImageクラスのようなものに基本プロパティを追加するにはどうすればよいですか?

public class ExtendedImage: Image 
{ 
} 

しかし、これは封印されているため、これは許可されていません。

他にどのような方法がありますか?私がImageを拡張したい理由は、オブジェクトを動的に作成して破棄して、アプリケーションの周りにドラッグアンドドロップすることを考えているからです。ですから、私は操作ハンドラとジェスチャを追加するだけでなく、さまざまな表示オブジェクトからオブジェクトを追加したり削除したりしたいと思います。

私は私の基底クラスに画像のインスタンスを挿入することができないと信じています。私は動的に作成された画像をさまざまな操作イベントなどに応答させようとするとデータと画像が分離されるからです。 (画像はメインキャンバスに上に置かれている場所に基づいて、私はそれは異なる機能を持っている必要があります。

をこの問題上の任意のアドバイスは大歓迎です。

+0

私の編集した答えをチェックしてください。 Tagプロパティを使用して処理を完了できます。 –

+0

@PaulSasik今、それを試して、ありがとう。 – Bob

答えて

3

あなたはインスタンスを関連付けるためにTagプロパティを使用することができますし、あなたが望むような行動を取る。何かのように:

public class ExtendedImageController 
{ 
    // add methods and properties as necessary 
} 

// client code 
var img = new Image(); // ... 
img.Tag = new ExtendedImageController(img); // with reference to image 

// in some event handler: 
var ctrl = (ExtendedImageController)img.Tag; 
ctrl.DoCleanupThings(); 
// ... 
+0

@Bob:Imageクラスと同じインターフェースを実装し、プロパティとメソッドの呼び出しをイメージオブジェクトに転送する必要があります。 –

+0

@Bob:特にこの場合は、FrameworkElementから継承し、画像と合成する必要があります。コードの更新を参照してください。 –

+0

これを今すぐ試してくれてありがとう。 – Bob

関連する問題