错误:'无法创建未知类型'{clr-namespace:NameSpace.Properties}设置'.'

jav*_*iry 30 wpf xaml styles application-settings wpf-style

我在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>
Run Code Online (Sandbox Code Playgroud)

当我运行我的应用程序时,我收到错误:

'无法创建未知类型'{clr-namespace:Kavand.UI.Properties}设置'.' 行号"6"和行位置"14".

jav*_*iry 47

我已将文件的"Build Action"属性设置为"Resource".当我将其更改为"Page"时问题得到了解决.

  • Waaat?这对我也有用.但文档明确说明要确保您的资源字典具有"资源"构建操作. (2认同)

小智 42

将"Bu​​ild Action"属性保持为"Resource"并只更改此行: xmlns:properties ="clr-namespace:Kavand.UI.Properties", 其中包含: xmlns:properties ="clr-namespace:Kavand.UI.Properties;装配= Kavand.UI"

  • 这是正确的答案,谢谢! (2认同)