【发布时间】:2014-12-27 08:13:14
【问题描述】:
WPF 开发和 C# 相当新(几天)。寻找从 XAML 定义和访问应用程序资源的两种方式之间的高级哲学差异:
-
我可以在可视化编辑器的 .resx 文件中定义资源,然后在像
<TextBox Text="{x:Static p:Resources.name}">这样的 XAML 文件中读取它们(前提是“p”命名空间指向应用程序属性)。 或者我可以在我的控制层次结构中的任何位置定义资源,比如
<sys:String x:Key="name">Name</sys:String>,然后将它们引用为<TextBox Text="{StaticResource name}">
我什么时候以及为什么要选择其中一个而不是另一个?
【问题讨论】:
-
当您需要将应用程序本地化为多种语言时,您会注意到差异。如果您使用 .resx,您只需要添加资源程序集(WPF 会自动查找并加载它们)。这个魔法是通过 ResourceManager 完成的。 XAML 文件没有这样的魔力。