1

いくつかの追加機能を備えたカスタムコントロールMyDataGridを備えたSilverlightアプリケーションがあります。DataGrid

これは、それが使用されるプロジェクトの一部です。また、カスタムスタイルが必要です。スタイルをスタイルリソースディクショナリに追加して、機能するように設定TargetType="sdk:DataGrid"できます。

MyPropertyただし、私のスタイルはに固有のプロパティに依存しているMyDataGridため、エディターに警告が表示されます。さらに重要なことに、スタイルはデザイナーでプレビューできません。

ただし、コードの実行時には機能します。

私の質問は、別のプロジェクトを作成して.dllにコンパイルし、そのアセンブリをプルするのではなく、ローカルコントロールをリソースディクショナリにプルする方法はありますか?

ありがとう!

4

1 に答える 1

1

カスタム コントロールを作成したようですが、デフォルト スタイルを定義していません。次のことを試してください。

  1. プロジェクトで、ルート レベルに Themes というフォルダーを追加します。
  2. Themes フォルダーに、generic.xaml という名前の ResourceDictionary を追加します。
  3. MyDataGrid のすべてのスタイルを generic.xaml に追加します。
  4. スタイルの 1 つが暗黙的なスタイルであることを確認してください (ここでは、BasedOn を使用するのが優れたソリューションです)。
  5. MyDataGrid の既定のコンストラクターで、次の行を追加します。DefaultStyleKey = typeof(MyDataGrid);

コードから (XAML で定義されている) スタイルの一部にアクセスする場合は、その XAML 項目に "PART_something" という名前を付ける必要があります。設計ツールは PART_* 構文を理解します。これは、コントロールを再テンプレート化する場合、PART_ で始まる必要な部分を定義する必要があることをライブラリの利用者に示します。

カスタム コントロールを定義する方法の基本は次のとおりです。

于 2012-05-21T18:45:02.357 に答える