我在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-名称空间:Kavand.UI.Properties}设置'“。 行号'6'和行位置 '14'。
答案 0 :(得分:47)
我已将文件的“Build Action”属性设置为“Resource”。当我将其更改为“Page”时,问题就解决了。
答案 1 :(得分:42)
将“Build Action”属性保存到“Resource”,只需更改此行: 的的xmlns:属性= “CLR-名称空间:Kavand.UI.Properties”强> 有了这个: 的的xmlns:属性= “CLR-名称空间:Kavand.UI.Properties;装配= Kavand.UI”强>
答案 2 :(得分:1)
刚发布另一个可能的解决方案,因为我最近偶然发现了这个异常。
可能是您引用的class-cefinition(在您的情况下为“Kavand.UI.Properties.Settings”)不使用“public”-access-modifier。
所以在我的情况下,我可以通过在课程定义之前写公开来解决这个问题。
答案 3 :(得分:0)
作为其他答案和评论的变体,它对我有用:
将文件的“构建操作”属性设置为“页面”。
构建(问题消失了-但是...:)
将文件的“构建操作”属性设置为“资源”。
构建
问题依然存在!
对我来说似乎是VS错误。