IntelliSense не работает для файла Resources.resx в проекте WPF / C #, VS2010 - PullRequest
2 голосов
/ 08 октября 2010

В моем настольном приложении WPF 4.0 для локализации моего приложения (например, английская и французская локализации) я использую файл Resources.resx, где я набираю имя диалога (ID) и его значение для английской и французской локализации. Все отлично работает, кроме одного - IntelliSense из Visual Studio 2010.

Допустим, у меня есть кнопка:

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

Где я хочу разместить его содержимое (метку на кнопке) на английском и французском языках, чтобы сделать это, я добавил в строку Resources.resx и Resources.fr.resx с идентификатором Toolbar_Search_Button и дал значение для каждого из них (Search / Recherche), и теперь я должен назначить идентификатор строки для свойства содержимого кнопки. В моем случае я должен написать всю эту длинную строку: x:Static res:Resources.Toolbar_Search_Button, и IntelliSense мне совсем не помогает. Единственное, что он мне подсказывает, это Member=, но я хочу, чтобы, когда я набираю res:Resources., он давал мне идентификатор всех существующих строк, как мы обычно видим, когда IntelliSense включен.

Я проверил настройки VS2010, IntelliSense включен для всех видов проектов / языков и работает, когда я пишу другой код XAML / C #, например, когда я набираю «Wi», он предлагает мне «Width» и т. Д.

Мой вопрос: Как включить IntelliSense для локализации / Ресурсы? Чтобы я мог набрать res:Resources. и посмотреть все имеющиеся у меня ресурсы локализации.

Большое спасибо.

1 Ответ

1 голос
/ 10 октября 2010

У меня точно такая же проблема.Я не верю, что Microsoft достаточно глупа, чтобы отключить этот бит intellisense с помощью некоторого неустановленного параметра / параметра для установки Visual Studio 2010 по умолчанию.

Но я верю, что Microsoft достаточно глупа, чтобы не реализовывать эту функцию в VS2010. Я мог бы простить им VS 2008, поскольку это была первая правильная реализация поддержки проектирования XAML (плагин VS 2005 - это нечто другое).Отсутствие реализации может быть связано с тем фактом, что если вы напишите строку в свой файл resx и затем укажете значение ключа в XAML, XAML начнет жаловаться, что новый ключ не существует в вашем файле resx.Как только вы создадите свое приложение, XAML начнет принимать новый ключ.

Обратите внимание, XAML имеет ужасную поддержку intellisense для начала.Возьмите, например, новый и улучшенный intellisense в коде позади - если вы введете «.Cust», intellisense предложит и «Customer», и «ExistingCustomer».Но эта же функция не реализована в XAML intellisense.Таких примеров больше ...

Итак, чтобы ответить на ваш вопрос - вы не можете включить поддержку resx intellisense в XAML, по крайней мере, я не знаю о такой возможности.

...