Ошибка: "Невозможно создать неизвестный тип" {clr-namespace:NameSpace.Properties}Settings ".'
Я определяю свои настройки и стили в ResourceDictionary:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:properties="clr-namespace:Kavand.UI.Properties">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary>
<properties:Settings x:Key="settings" />
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
<Style x:Key="PopupMenu_StackPanel">
<Setter Property="TextBlock.FontSize" Value="{Binding Source={StaticResource settings}, Path=Default.Font_Menu_Size}" />
<Setter Property="TextBlock.FontFamily" Value="{Binding Source={StaticResource settings}, Path=Default.Font_Menu_Family}" />
<Setter Property="TextBlock.FontWeight" Value="{Binding Source={StaticResource settings}, Path=Default.Font_Menu_Weight}" />
<Style.Resources>
<Style TargetType="{x:Type MenuItem}" BasedOn="{StaticResource KavandMenuItem}">
<Style.Triggers>
<Trigger Property="IsChecked" Value="true">
<Setter Property="IsEnabled" Value="false" />
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsChecked" Value="True" />
<Condition Property="IsHighlighted" Value="True" />
</MultiTrigger.Conditions>
<Setter Property="Foreground" Value="{DynamicResource K_Brush_Gray}" />
</MultiTrigger>
</Style.Triggers>
</Style>
</Style.Resources>
</Style>
</ResourceDictionary>
Когда я запускаю свое приложение, я получаю сообщение об ошибке:
'Невозможно создать неизвестный тип'{clr-namespace:Kavand.UI.Properties} Настройки '.' Номер строки "6" и позиция "14".
3 ответа
Я установил для свойства файла "Build Action" значение "Resource". Когда я изменил его на "Пейдж", проблема была решена.
Оставьте для своего свойства "Build Action" значение "Resource" и просто измените эту строку: xmlns: properties = "clr-namespace: Kavand.UI.Properties" следующим образом: xmlns: properties = "clr-namespace: Kavand.UI.Properties; Узел =Kavand.UI"
Просто опубликую другое потенциальное решение, потому что я недавно наткнулся на это исключение.
Возможно, что указанное вами определение класса (в вашем случае "Kavand.UI.Properties.Settings") не использует "public"-access-modifier.
Так что в моем случае я мог решить эту проблему, написав публично перед определением класса.
Как вариант других ответов и комментариев, это сработало для меня:
Установите для свойства файла "Действие сборки" значение "Страница".
Сборка (проблема ушла - но...:)
Установите для свойства файла "Действие сборки" значение "Ресурс".
Построить
Проблема все еще ушла!
Мне кажется, что это ошибка VS.