XamlReader выдает при загрузке generic.xaml для слияния словарей ресурсов - PullRequest
3 голосов
/ 18 октября 2011

Попытка загрузить generic.xaml в коде, но он вызывает исключение XamlParseException.Код следующий:

Uri uri = new Uri("Themes/Generic.xaml", UriKind.Relative);
StreamResourceInfo info = Application.GetResourceStream(uri);
System.Windows.Markup.XamlReader reader = new System.Windows.Markup.XamlReader();

ResourceDictionary resdict = (ResourceDictionary)reader.LoadAsync(info.Stream);

this.Resources.MergedDictionaries.Add(resdict);

Идея состоит в том, чтобы объединить словарь ресурсов на базовой странице.Затем производные страницы могут использовать стили, цвета, кисти и т. Д. Из своего базового класса, используя, например, {StaticResource DarkBrush}.

Но приведенный выше код создает:недопустимый символ.Строка 1, позиция 1.

Файл generic.xaml был создан в VS2010 стандартным способом.Пытался установить Build Action в Resource, но это тоже не сработало ...

Я получил пример кода от Microsoft.Там он был использован для загрузки страницы.Любая помощь будет принята с благодарностью.

1 Ответ

5 голосов
/ 18 октября 2011
        Uri uri = new Uri("Themes/Generic.xaml", UriKind.RelativeOrAbsolute);
        var resDict = Application.LoadComponent(uri) as ResourceDictionary;
        this.Resources.MergedDictionaries.Add(resDict);
...