2015-03-27 2 views
0

У меня есть проект WPF управления пользователя, и я пытаюсь создать ресурс словарь, используя следующий кодResourceDictionary создание с помощью кода в WPF

var resourceDictionary = new ResourceDictionary(); 
resourceDictionary.Source = new Uri("/SampleExtension;component/MyResource.xaml", UriKind.Relative); 

Над кодом бросает NotSupportedException с сообщением «Префикс URI не признается ". Для действия Btw MyResource.xaml для сборки установлено значение Ресурс.

Аналогичный URI при использовании XAML отлично работает.

<UserControl.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="/SampleExtension;component/MyResource.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
     <my:ViewModel x:Key="ViewModel"/> 
    </ResourceDictionary> 
</UserControl.Resources> 

Что я делаю неправильно в коде?

ответ

0

Поскольку мой проект был проектом управления пользователями (и приложение WPF не запускалось, когда я тестировал выше код), мне придется ссылаться на класс Application.

var app = Application.Current; 
var resourceDictionary = new ResourceDictionary(); 
resourceDictionary.Source = new Uri("/SampleExtension;component/MyResource.xaml", UriKind.RelativeOrAbsolute); 

Нечто подобное было объяснено в этом question

Смежные вопросы