【问题标题】:IntelliSense doesn't work for Resources.resx file in WPF/C# project, VS2010IntelliSense 不适用于 WPF/C# 项目 VS2010 中的 Resources.resx 文件
【发布时间】:2019-02-21 19:18:33
【问题描述】:

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

假设我有一个按钮:

<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» 时它建议我使用 «Width» 等。

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

非常感谢。

【问题讨论】:

    标签: wpf xaml resources localization intellisense


    【解决方案1】:

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

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

    请注意,XAML 一开始就具有可怕的智能感知支持。以后面代码中新的和改进的智能感知为例——如果你输入“.Cust”,智能感知将同时提供“客户”和“现有客户”。但是 XAML 智能感知中没有实现相同的功能。这样的例子还有很多……

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-29
      • 1970-01-01
      • 2018-04-09
      相关资源
      最近更新 更多