2009-06-04 8 views
0

TelerikのRadGridViewなどのサードパーティ製コントロールをスタンドアロンコントロールとしてカスタマイズすることに興味があります。たとえば、XAML操作をサポートしながら、新しい行を追加したり、私のコントロールが存在するウィンドウ(つまり、ウィンドウがグリッドの列に独自のスタイルを追加するためのウィンドウ)によって、コントロールの内部構造が変更されます。第三者のWPFコントロールをカプセル化してカスタマイズする

テンプレートなどでボタンなどを追加する方法はありますか?スタイル?

私の現在の「解決策」はRadGridViewから継承することですが、私は必要な機能を追加する方法についていません。

ありがとうございます!

答えて

1

私の提案は、継承を超えた合成を使用することです。

独自のコントロールを作成することができます(UserControlが作業を行う必要があります)。次に、レイアウトを定義することができます(グリッドパネル内にある可能性があります)。上のボタン、、RadGridViewなどです。カスタム列スタイリングの場合、DynamicResourceトリックを使用できます。 DynamicResourceを使用して、変更する列のスタイルを設定します。この方法でコントロールが論理(ビジュアル)ツリーに追加されます。 WPFはコントロールツリーを歩き、適切なリソースを見つけます。このようにして、各ウィンドウ/ページリソースで異なるリソースを定義することができます。

別のアイデアは、別のコントロールとしてボタンを抽出できるということです。必要な唯一の参照はRadGridViewであり、要素名を持つバインディングを使用して提供することができます。

1

私は、継承ルートの代わりにカスタムのUserControlルートに行きます。あなたがw /サブクラスを扱っているときには、スタイリングとテーマ処理が不思議に動作します。 TelerikのControlTemplatesとDataTemplatesの複製と修正を計画している場合を除き、かなり毛深いことがあります。

関連する問題