Я пытаюсь установить текущее приложение WPF ResourceDictionary программно.(У меня есть проект WindForms, поэтому для меня это не "App.xaml").
Примечание: Если кто-нибудь знает, как связать эквивалент Application.Resources сElementHost и вся иерархия дочерних элементов управления , это конечная цель здесь.
Я добавил в свой код:
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: (показано на скриншоте)
EDIT : Вот мое временное, очень хакерское решение, поэтому я могу продолжать разработку.Действительно, «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) });
}