我在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}Settings'.‘’无法创建未知类型的
行号'6‘和行位置'14'.
发布于 2011-05-28 08:21:08
我已经将文件的"Build“属性设置为"Resource”。当我把它改为“页面”时,问题就解决了。
发布于 2013-04-29 13:57:38
将"Build“属性保留为"Resource”,只需更改此行:
xmlns:properties="clr-namespace:Kavand.UI.Properties"在这方面:
xmlns:properties="clr-namespace:Kavand.UI.Properties;assembly=Kavand.UI"发布于 2018-04-25 12:22:08
只是发布了另一个潜在的解决方案,因为我最近刚刚在这个异常上绊倒了。
可能是所引用的类限制(在您的例子中是Kavand.UI.Properties.Settings)不使用public-access-修饰符。
因此,在我的例子中,我可以通过在类定义之前编写public 来解决这个问题。
https://stackoverflow.com/questions/6156723
复制相似问题