Error: 'Cannot create unknown type '{clr-n

2019-01-17 15:04发布

I define my settings and styles in a 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>

When I run my application, I get the error:

'Cannot create unknown type '{clr-namespace:Kavand.UI.Properties}Settings'.' Line number '6' and line position '14'.

3条回答
太酷不给撩
2楼-- · 2019-01-17 15:19

Just posting another potential solution, because i just recently stumbled over this exception.

It could be that your referenced class-cefinition (in your case "Kavand.UI.Properties.Settings") does not use "public"-access-modifier.

So in my case i could solve this problem by writing public before the class definition.

查看更多
Deceive 欺骗
3楼-- · 2019-01-17 15:25

Keep your "Build Action" property to "Resource" and just change this row: xmlns:properties="clr-namespace:Kavand.UI.Properties" with this: xmlns:properties="clr-namespace:Kavand.UI.Properties;assembly=Kavand.UI"

查看更多
你好瞎i
4楼-- · 2019-01-17 15:34

I had set the file's "Build Action" property to "Resource". When I changed it to "Page" the problem was resolved.

查看更多
登录 后发表回答