2012-03-16 19 views
0

私のプロジェクトのデフォルトコントロールテンプレートを変更したい。私の最初の変更のために、私はちょうど各テーマのリストビューのScrollViewerのための部分名を確立したい。デフォルトのコントロールテーマを変更するにはどうすればよいですか?

私の構造は次のとおりです。 MyControlLibrary:いくつかのコントロールを定義し、標準wpfコントロールのテーマを定義します。 MyApplication:コントロールライブラリとテーマが含まれています。

ここまでは私が今までに考え出したものです。 http://archive.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=wpfsamples&DownloadId=7812

ダウンロードしたテーマをMyControlLibraryのThemesフォルダに追加し、必要な参照を追加し、アセンブリを参照するために変更されたxmlns:theme namespaceを追加しました。

ここから、私は次に何をすべきか分かりませんでした。テンプレートを上書きするだけではそれほど難しくありませんが、私はアプリケーションが依然としてテーマを意識したものにしたいと思っています。事前に

おかげ

EDIT: わかりましたが、私はこのための解決策を見つけました。私はこれが他の誰かを助けることを望む。

更新しますApp.xaml AssemblyWithThemesは、テーマファイルをテーマ\フォルダが含まれているアセンブリの名前です

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="{ThemeDictionary AssemblyName=AssemblyWithThemes}"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
    <!-- other styles go here --> 
</Application.Resources> 

。私はアセンブリがあなたのアプリケーションからも参照される必要があると思います。

App.xamlファイルに直接追加のリソースを追加する場合は、コメントの上に追加のリソースを配置する必要があります。それ以外の場合は、Application.Resourcesプロパティを設定する代わりにResourceDictionaryが別のリソースになります。

次に、すべての追加のスタイルで、テーマの変更を保存するためにBasedOn属性を指定する必要があります。動的に作成されたウィンドウでは、新しいスタイル(タイプ)を使用して、上書きされたテーマが使用されないようにしました。新しいスタイル(タイプ、スタイル)に変更した後、完全に機能しました。

+0

解決策を質問に編集するのではなく、下部に回答として投稿してください。回答をマークすることができます。 – BoltClock

答えて

0

これは私が解決策を見つけました。私はこれが他の誰かを助けることを望む。

更新しますApp.xaml AssemblyWithThemesは、テーマファイルをテーマ\フォルダが含まれているアセンブリの名前です

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="{ThemeDictionary AssemblyName=AssemblyWithThemes}"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
    <!-- other styles go here --> 
</Application.Resources> 

。私はアセンブリがあなたのアプリケーションからも参照される必要があると思います。

App.xamlファイルに直接追加のリソースを追加する場合は、コメントの上に追加のリソースを配置する必要があります。それ以外の場合は、Application.Resourcesプロパティを設定する代わりにResourceDictionaryが別のリソースになります。

次に、すべての追加のスタイルで、テーマの変更を保存するためにBasedOn属性を指定する必要があります。動的に作成されたウィンドウでは、新しいスタイル(タイプ)を使用して、上書きされたテーマが使用されないようにしました。新しいスタイル(タイプ、スタイル)に変更した後、完全に機能しました。

関連する問題