I define my settings and styles in a 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>
When I run my application, I get the error:
'Cannot create unknown type '{clr-namespace:Kavand.UI.Properties}Settings'.' Line number '6' and line position '14'.
I had set the file's "Build Action" property to "Resource". When I changed it to "Page" the problem was resolved.
Keep your "Build Action" property to "Resource" and just change this row:
xmlns:properties="clr-namespace:Kavand.UI.Properties"
with this:
xmlns:properties="clr-namespace:Kavand.UI.Properties;assembly=Kavand.UI"
Just posting another potential solution, because i just recently stumbled over this exception.
It could be that your referenced class-cefinition (in your case Kavand.UI.Properties.Settings
) does not use public
-access-modifier.
So in my case i could solve this problem by writing public
before the class definition.
As a variation on other answers & comments, this worked for me:
Set the file's "Build Action" property to "Page".
Build (problem gone - but...)
Set the file's "Build Action" property to "Resource".
Build
Problem still gone!
Seems like a VS bug to me.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With