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」。
ファイルの「ビルドアクション」プロパティを「リソース」に設定しました。 「ページ」に変更すると問題は解決しました。
「BuildAction」プロパティを「Resource」のままにして、次の行を変更します:xmlns:properties = "clr-namespace:Kavand.UI.Properties" with this:xmlns:properties = "clr-namespace:Kavand.UI.Properties; Assembly = Kavand.UI"
私は最近この例外に出くわしたので、別の潜在的な解決策を投稿するだけです。
参照されているclass-cefinition(この場合は「Kavand.UI.Properties.Settings」)が「public」-access-modifierを使用していない可能性があります。
私の場合、クラス定義の前にpublicを書くことで、この問題を解決できます。
他の回答とコメントのバリエーションとして、これは私のために働いた:
ファイルの「ビルドアクション」プロパティを「ページ」に設定します。
ビルド(問題はなくなりました-しかし... :)
ファイルの「ビルドアクション」プロパティを「リソース」に設定します。
ビルド
問題はまだなくなっています!
私にはVSバグのようです。