現在の WPF Application ResourceDictionary をプログラムで設定しようとしています。(私はWindFormsプロジェクトを持っているので、それを行うための「App.xaml」はありません)。
注: Application.Resources に相当するものを ElementHostとそのすべての子コントロールの hierarchyにバインドする方法を誰かが知っている場合、これがここでの最終的な目的です。
私は自分のコードに追加しました:
Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri("/Middlewerks;component/Resources.xaml", UriKind.RelativeOrAbsolute) });
アプリケーションで完全に機能するようになりました。スタイリングは問題ありません (つまり、グリッドの背景は赤です。これは単なるテスト スタイルです)。
しかし、このフォームをデザイナーで開くと、Visual Studio が狂ってしまいます。ウィンドウ全体が私のスタイルを使用しています!
スクリーンショットは次のとおりです: http://localhostr.com/files/8368cc/Failure.jpg すばらしい のは、Visual Studio 2010 の醜い青いスキンを編集する方法を見つけたことです。悲しいことに、私のコントロールで開発を行っても、顧客を満足させることはできません。
気軽に試して、すべてを台無しにすることなくリソースを実装する方法を教えてください。
XAML コード: (スクリーンショットに表示)
編集:これは私の一時的な非常にハックな解決策であり、開発を続けることができます。「Application.Current」が Visual Studio で動くのは本当に困ります。
if (Application.Current.MainWindow == null || !Application.Current.MainWindow.Title.EndsWith(" - Microsoft Visual C# 2010 Express"))
{
Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri("/Middlewerks;component/Resources.xaml", UriKind.RelativeOrAbsolute) });
}