Я пытаюсь использовать MaterialDesignXamlToolkit в моей библиотеке классов WPF (.NET Framework).Я следую их официальному краткому руководству , но так как у меня нет App.xaml, мне пришлось внести некоторые коррективы.Возможно, какой-то шаг был неправильным, но я не знаю, какой именно.
1) Я установил MaterialDesignXamlToolkit с помощью Nuget.
2) Я создал ResourceDictionary со следующим кодом: (я указал ключ, потому чтовозникает ошибка, если я этого не сделаю)
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary x:Key="123">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Light.xaml" />
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />
<ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/MaterialDesignColor.DeepPurple.xaml" />
<ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.Lime.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</ResourceDictionary>
Если я удаляю элемент <ResourceDictionary x:Key="123">
, я получаю сообщение об ошибке:
System.Windows.Markup.XamlParseException: Set property 'System.Windows.ResourceDictionary.Source' threw an exception.
FileNotFoundException: Could not load file or assembly 'MaterialDesignThemes.Wpf, Culture=neutral' or one of its dependencies.
3) Мой «главный экран»Page, поэтому я добавил к нему ресурс:
<Page.Resources>
<ResourceDictionary Source="/MyAsembly;component/ResourceDictionary/MaterialDesign.xaml" />
</Page.Resources>
4) Здесь возникает очевидная проблема (это второй шаг официального руководства): я добавляю следующий код на мою страницу:
<Page ...
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
TextElement.Foreground="{DynamicResource MaterialDesignBody}"
TextElement.FontWeight="Regular"
TextElement.FontSize="13"
TextOptions.TextFormattingMode="Ideal"
TextOptions.TextRenderingMode="Auto"
Background="{DynamicResource MaterialDesignPaper}"
FontFamily="{DynamicResource MaterialDesignFont}">
Но я получаю предупреждение, что: The resource {MaterialDesignBody, MaterialDesignPaper, MaterialDesignFont} could not be resolved.
В некоторых решениях, которые я пробовал, указывалось, что действие сборки ResourceDictionary должно быть страницей, и это так.
Любойпомощь будет принята с благодарностью!