![]() |
|
Модераторы: gambit, Kefir, Partizan |
![]()
|
|
| Compositum |
|
|||
|
Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
Разбираюсь с локализацией по статьям первая и вторая.
Изучил первую статью, попробовал - получается. Но... Локализовывать может потребоваться не только текстовую часть GUI, но и др. тип информации - например изображения. Предположим, что у меня в окне должен отображаться флаг страны, чья локализация является текущей. Для этого в файл Resources.resx я добавил нужный мне файл изображения, и в его свойствах задал Name = flag и Persistence = Embedded in .resx. Теперь хочу в XAML-разметке окна сослаться на этот ресурс. Как это правильно сделать? У меня не получается выполнить это и из кода: ![]() Из скрина видно, что поток (объект ms) не равен null, однако pngImg.StreamSource равен null, хотя я присвоил ему значение ms. Что я не верно сделал? |
|||
|
||||
| Compositum |
|
||||||
|
Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
В общем из кода нужно делать как-то так (это ежели кому интересно):
Так же на тему багов BitmapImage.StreamSource можно прочитать здесь А можно ли выполнить привязку из XAML- разметки? И ещё момент: если xaml-описание такое:
То изображение флажка такое: ![]() Однако если убрать значение Height:
то получаю такую штуку: ![]() Я хочу, чтобы размер изображения автоматически подстраивался под размер png-источника. Это сообщение отредактировал(а) Compositum - 25.3.2010, 13:22 |
||||||
|
|||||||
| Compositum |
|
|||
|
Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
можно конечно сделать так:
т.е. указать размеры принудительно в коде, но млин, по прежнему хочется в xaml-разметке привязку слепить. сейчас попробую конвертер слепить и через него выполнить. Это сообщение отредактировал(а) Compositum - 26.3.2010, 11:02 |
|||
|
||||
| Compositum |
|
||||||||||||
|
Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
Написал простенький конвертер:
Подправил программный код конструктора окна:
В этом случае всё будет работать как надо: появляется окошко с изображением локализованного флага, причём флаг имеет реальные размеры изображения. Т.е. всё пучком... Но... я ведь хочу всё это реализовать исключительно через разметку XAML... А значит вышеуказанный фрагмент кода откладываю в сторону... В ресурсах приложения прописываю конвертер:
Подправил xaml-код, касающийся Image (указал привязки, чтобы изображение не раздувалось на всё окно, а так же прописал привязку источника изображения (свойство Source):
В результате получаю ошибки:
В принципе, я понимаю в чём тут ошибка - указан res:Resources, а xaml ожидает получить не просто класс, а статический объект, т.е. в моём случае это должно быть res:Resources.flag. Но тогда получается, что я уже непосредственно указываю на то свойство, которое мне нужно и в параметр Path мне уже нечего передавать... Я пробовал такой вариант:
никаких ошибок не возникает, но и никакого флага в окошке не появляется... Это сообщение отредактировал(а) Compositum - 26.3.2010, 22:32 |
||||||||||||
|
|||||||||||||
![]()
|
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | WPF и Silverlight | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |