Ошибка: "Невозможно создать неизвестный тип" {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.

Другие вопросы по тегам