Изображения, привязанные к изображениям, добавленным в файлы resx с использованием XAML - PullRequest
5 голосов
/ 09 ноября 2011

В мое приложение WPF входит файл ресурсов MyResources.resx, содержащий несколько строк и изображений.Поскольку приложение должно быть локализовано, все мои ссылки на глобализированные ресурсы должны быть сделаны через именованные свойства автоматически сгенерированного класса MyResources.Следующий код хорошо работает для строковых ресурсов:

<Button Content="{x:Static local:Properties.MyResources.ButtonText}" />

Однако то же самое не работает для изображений.Предполагая, что у меня есть изображение eflag.bmp, добавленное к ресурсам как ресурс с именем Flag, я хотел бы иметь возможность сделать что-то вроде этого:

<Image Source="{x:Static local:Properties.MyResources.Flag}" />

Обратите внимание, что следующий альтернативный подход:

<Image Source="/MyNamespace;component/Resources/eflag.bmp" />

не может использоваться в этом случае, потому что он не сможет обрабатывать локализацию.Проблема может быть решена с помощью кода, но я ищу решение на основе XAML.

1 Ответ

8 голосов
/ 09 ноября 2011

Превратите ваш x:Static в Binding.Source и добавьте Converter, который делает растровое изображение в ImageSource .

Source="{Binding Source={x:Static local:Properties.MyResources.Flag},
                 Converter={StaticResource BitmapToImageSourceConverter}}"

В качестве альтернативы вы можете сделать конвертер пользовательским расширением разметки , которое принимает Bitmap и возвращает ImageSource в ProvideValue.

Source="{me:BitmapToImageSource {x:Static local:Properties.MyResources.Flag}}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...