私のプロジェクトのデフォルトコントロールテンプレートを変更したい。私の最初の変更のために、私はちょうど各テーマのリストビューの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属性を指定する必要があります。動的に作成されたウィンドウでは、新しいスタイル(タイプ)を使用して、上書きされたテーマが使用されないようにしました。新しいスタイル(タイプ、スタイル)に変更した後、完全に機能しました。
解決策を質問に編集するのではなく、下部に回答として投稿してください。回答をマークすることができます。 – BoltClock