如果 resx 文件在另一个项目中,则不能使用它们
Cannot use resx files if their are in another project
我正在 .NET 中开发 WPF 应用程序。我正在使用很多项目,因为它有另一个项目的一些共享文件,比如用于本地化的资源文件。
如果resx文件和xaml文件在同一个项目中(Project1.Properties.Resources.resx),一切正常(Project1.AccountView.xaml)
Working Tree
|-Project1
| |-Properties
| | |-Resources.resx
| |
| |-AccountView.xaml
|
|
|-Project2
| ...
AccountView.xaml
<UserControl ...
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:p="clr-namespace:Project1.Properties">
....
<TextBox Controls:TextBoxHelper.Watermark="{x:Static p:Resources.Username}"/>
</UserControl>
这里的问题是我在另一个项目(Project2.Views.Account.Login.resx)中有资源文件,我无法在AccountView.xaml中使用这些文件(记住这个xaml在'Project1')里面,和
一样
Working Tree
|-Project1
| |
| |-AccountView.xaml
|
|
|-Project2
|-Views
|-Account
|-Login.resx
AccountView.xaml
<UserControl ...
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:p="clr-namespace:Project2.Views.Account">
...
TextBox Controls:TextBoxHelper.Watermark="{x:Static Login.Username}"/>
</UserControl>
构建项目时的错误是:'Login' name does not exist in 'clr-namespace:Project2.Views.Account' namespace
所有 resx 文件都有 Public 访问修饰符。
有人知道我该如何解决这个问题吗?
命名空间声明应包括程序集(项目)的名称:
xmlns:p="clr-namespace:Project2.Views.Account;assembly=Project2"
...
TextBox Controls:TextBoxHelper.Watermark="{x:Static p:Login.Username}"
我正在 .NET 中开发 WPF 应用程序。我正在使用很多项目,因为它有另一个项目的一些共享文件,比如用于本地化的资源文件。
如果resx文件和xaml文件在同一个项目中(Project1.Properties.Resources.resx),一切正常(Project1.AccountView.xaml)
Working Tree
|-Project1
| |-Properties
| | |-Resources.resx
| |
| |-AccountView.xaml
|
|
|-Project2
| ...
AccountView.xaml
<UserControl ...
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:p="clr-namespace:Project1.Properties">
....
<TextBox Controls:TextBoxHelper.Watermark="{x:Static p:Resources.Username}"/>
</UserControl>
这里的问题是我在另一个项目(Project2.Views.Account.Login.resx)中有资源文件,我无法在AccountView.xaml中使用这些文件(记住这个xaml在'Project1')里面,和
一样Working Tree
|-Project1
| |
| |-AccountView.xaml
|
|
|-Project2
|-Views
|-Account
|-Login.resx
AccountView.xaml
<UserControl ...
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:p="clr-namespace:Project2.Views.Account">
...
TextBox Controls:TextBoxHelper.Watermark="{x:Static Login.Username}"/>
</UserControl>
构建项目时的错误是:'Login' name does not exist in 'clr-namespace:Project2.Views.Account' namespace
所有 resx 文件都有 Public 访问修饰符。
有人知道我该如何解决这个问题吗?
命名空间声明应包括程序集(项目)的名称:
xmlns:p="clr-namespace:Project2.Views.Account;assembly=Project2"
...
TextBox Controls:TextBoxHelper.Watermark="{x:Static p:Login.Username}"