0x4*_*9D1 66 c# xaml localization resx
是否可以将资源文件中的某些值添加到XAML标记中?或者对于本地化,我们总是要在*.cs文件中制作这样的东西:
txtMessage.Text = Messages.WarningUserMessage;
Run Code Online (Sandbox Code Playgroud)
Messages
资源在哪里,txtMessage
是TextBlock.
Jul*_*ain 77
确保在resx编辑器中将Code Generation设置为Public,然后您可以简单地使用:
<TextBlock Text="{x:Static Messages.WarningUserMessage}" />
Run Code Online (Sandbox Code Playgroud)
小智 62
这样做要容易得多.在XAML文件中添加xmlns并直接使用资源.
xmlns:resx="clr-namespace:wpfapplicationname.Properties"
Title="{x:Static resx:Resources.name}"
Run Code Online (Sandbox Code Playgroud)
小智 11
我知道我的回复有点迟了,但我认为值得分享:
要使用存储在*.resx文件中的字符串而不使用Static关键字:
xmlns:resource="clr-namespace:YourProject.Properties"
在ApplicationResources(app.xaml文件)中为您的*.resx文件添加资源
<Application.Resources>
<resource:ResourceFileName x:Key="ApplicationStringResources" />
</Application.Resources>
在您的XAML文件中使用以下Binding,让我们以Window Title为例
Title="{Binding TitleString, Source={StaticResource ResourceKey=ApplicationStringResources}}"
TitleString是*.resx文件中StringProperty的名称
最后但并非最不重要的是,不要忘记将资源文件访问修饰符更改为Public.
最简单的方法可能是直接引用项目(它们是静态属性,默认为内部):
<TextBlock x:Name="txtMessage" Text="{x:Static MyApp.Properties.Resource.TextString}"/>
Run Code Online (Sandbox Code Playgroud)
如果您正在使用本地化的WPF应用程序,那么我建议您在http://wpflocalization.codeplex.com/上查看有关CodePlex的指南,如果您正在构建复合应用程序(使用PRISM或MEF)然后我有一篇关于使用标准绑定完成WPF本地化的好方法的博客文章.
归档时间: |
|
查看次数: |
69121 次 |
最近记录: |