Can't find “Resources” file in wpf

2019-07-04 02:20发布

问题:

I'm newbe in WPF. I need to add reference on the resources file resx and get strings from it.

<Window x:Class="SelectObjectsWindow.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     xmlns:res="clr-namespace:SelectObjectsWindow.Properties"

    Title="{x:Static res:Resources.Res1}" Height="350" Width="525">
<Grid>
    ....
</Grid>

I got an error: The name "Resources" does not exist in the namespace "clr-namespace:SelectObjectsWindow.Properties". I was searching information about this and find couple of advises: Set "public" access modifier of resx file. Change Build Action property of resx on "Embedded Resource".

So, I did it, but nothing changed. I checked all namespaces. Seems to be ok. I don't know, what else I should try.

In .cs i can do this without error

  var res = Properties.Resources.Res1;

Do somebody know, what is wrong?

回答1:

Change access modifier from internal to public, your binding will work.



回答2:

Try adding an Assembly reference:

xmlns:res="clr-namespace:SelectObjectsWindow.Properties;assembly=[AssemblyName]"

Replace [AssemblyName] with the name of your assembly which can be found by right clicking your project and selecting Properties, go to the Application tab and see Assembly name: