web-dev-qa-db-ja.com

エラー: '不明なタイプを作成できません' {clr-namespace:NameSpace.Properties} Settings '。'

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」。

31
ravy amiry

ファイルの「ビルドアクション」プロパティを「リソース」に設定しました。 「ページ」に変更すると問題は解決しました。

47
javad amiry

「BuildAction」プロパティを「Resource」のままにして、次の行を変更します:xmlns:properties = "clr-namespace:Kavand.UI.Properties" with this:xmlns:properties = "clr-namespace:Kavand.UI.Properties; Assembly = Kavand.UI"

42

私は最近この例外に出くわしたので、別の潜在的な解決策を投稿するだけです。

参照されているclass-cefinition(この場合は「Kavand.UI.Properties.Settings」)が「public」-access-modifierを使用していない可能性があります。

私の場合、クラス定義の前にpublicを書くことで、この問題を解決できます。

1

他の回答とコメントのバリエーションとして、これは私のために働いた:

  • ファイルの「ビルドアクション」プロパティを「ページ」に設定します。

  • ビルド(問題はなくなりました-しかし... :)

  • ファイルの「ビルドアクション」プロパティを「リソース」に設定します。

  • ビルド

  • 問題はまだなくなっています!

私にはVSバグのようです。

0
UuDdLrLrSs