Ошибка: «Не удается создать неизвестный тип« {clr-namespace: NameSpace.Properties} Settings ». ' - PullRequest
30 голосов
/ 27 мая 2011

Я определяю свои настройки и стили в 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 ]

47 голосов
/ 28 мая 2011

Я установил для свойства файла «Build Action» значение «Resource». Когда я изменил его на «Пейдж», проблема была решена.

42 голосов
/ 29 апреля 2013

Оставьте свойство "Build Action" в "Resource" и просто измените эту строку: xmlns: properties = "clr-namespace: Kavand.UI.Properties" с этим: xmlns: properties= "CLR-пространств имен: Kavand.UI.Properties; сборочные = Kavand.UI"

1 голос
/ 25 апреля 2018

Просто публикую другое потенциальное решение, потому что я только недавно наткнулся на это исключение.

Возможно, что указанное вами определение класса (в вашем случае "Kavand.UI.Properties.Settings") не использует«public» -access-modifier.

Так что в моем случае я мог бы решить эту проблему, написав public перед определением класса.

...