问题
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'.
回答1:
I had set the file's "Build Action" property to "Resource". When I changed it to "Page" the problem was resolved.
回答2:
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"
回答3:
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.
来源:https://stackoverflow.com/questions/6156723/error-cannot-create-unknown-type-clr-namespacenamespace-propertiessettings