IntelliSense不适用于WPF / C#项目VS2010中的Resources.resx文件

时间:2010-10-08 19:52:03

标签: wpf xaml resources localization intellisense

在我的WPF 4.0基于桌面的应用程序中,为了本地化我的应用程序(例如英语和法语本地化),我正在使用Resources.resx文件,在那里我输入对话框名称(ID)及其用于英语和法语本地化的值。一切都很好,除了一件事 - Visual Studio 2010的智能感知。

我们说,我有一个按钮:

<Button x:Name="Toolbar_Search_Button"
        Content="{x:Static res:Resources.Toolbar_Search_Button}" />

我想将其内容(按钮上的标签)用英语和法语放在哪里,为了做到这一点,我添加了一个ID为Toolbar_Search_Button的Resources.resx和Resources.fr.resx字符串,为每个人(Search / Recherche)提供了一个值,现在我必须将字符串ID分配给按钮内容属性。在我的情况下,我必须编写所有这些长字符串:x:Static res:Resources.Toolbar_Search_Button并且IntelliSense根本不帮助我。它建议我唯一的问题是Member=,但我希望当我输入res:Resources.时,它会给我所有现有的字符串ID,因为我们通常可以看到启用IntelliSense的时候。

我检查了VS2010首选项,IntelliSense启用了各种项目/语言,当我编写其他XAML / C#代码时,它就可以工作,就像我输入«Wi»它表示我“宽度”等。

我的问题是: 如何为本地化/资源启用IntelliSense?我可以输入res:Resources.并查看我拥有的所有本地化资源字符串。

非常感谢。

1 个答案:

答案 0 :(得分:1)

我有完全相同的问题。我不相信微软愚蠢到通过一些默认的Visual Studio 2010安装的未设置选项/设置禁用那个智能感知器。

但我确实相信微软愚蠢到不能在VS 2010中实现这个功能。我可以原谅他们VS 2008,因为这是XAML设计支持的第一个正确实现(VS 2005插件是别的东西)。如果你在resx文件中写一个字符串,然后在XAML中指定键值,那么缺乏实现可能与事实有关,XAML将开始抱怨你的resx文件中不存在新密钥。构建应用程序后,XAML将开始接受新密钥。

请注意,XAML开始时具有可怕的智能感知支持。以代码背后的新的和改进的intellisense为例 - 如果你键入“.Cust”,intellisense将同时提供“Customer”和“ExistingCustomer”。但是在XAML intellisense中没有实现相同的功能。还有更多这样的例子......

所以回答你的问题 - 你不能在XAML中启用resx intellisense支持,至少我不知道这种可能性。