Ресурсы изображений WPF

В принятом ответе уже упоминается PEP 238 . Я просто хочу добавить быстрый взгляд за кулисы для тех, кто интересуется тем, что происходит, не читая весь PEP.

Python отображает такие операторы, как +, -, * и / к специальным функциям, например, a + b эквивалентен

a.__add__(b)

Что касается деления в Python 2, по умолчанию используется только /, который отображается на __div__, и результат зависит от типов ввода (например, int , float).

В Python 2.2 была введена функция __future__ division, которая изменила семантику деления следующим образом (TL; DR из PEP 238):

  • / отображается на __truediv__, который должен «возвращать разумную аппроксимацию математического результата деления» (цитата из PEP 238)
  • // отображается на __floordiv__, которая должна возвращаться польский результат /

С Python 3.0 изменения PEP 238 стали поведением по умолчанию, и в объектной модели Python не существует особого метода __div__.

Если вы хотите использовать тот же код в Python 2 и Python 3, используйте

from __future__ import division

и придерживайтесь семантики PEP 238 / и //.

385
задан Peter Mortensen 19 May 2018 в 10:52
поделиться

5 ответов

Если Вы будете использовать изображение в нескольких местах, то стоит загрузить данные изображения только однажды в память и затем совместно использовать его между всем Image элементы.

, Чтобы сделать это, создайте BitmapSource как ресурс где-нибудь:

<BitmapImage x:Key="MyImageSource" UriSource="../Media/Image.png" />

Затем в Вашем коде, используйте что-то как:

<Image Source="{StaticResource MyImageSource}" />

В моем случае, я нашел, что должен был установить Image.png файл, чтобы иметь действие сборки Resource, а не всего Content. Это заставляет изображение нестись в рамках Вашего скомпилированного блока.

459
ответ дан Drew Noakes 19 May 2018 в 20:52
поделиться
  • 1
    Да, в значительной степени что I' ve, всегда делавшиеся, см. мое отредактированное сообщение. Спасибо. – maxhugen 26 September 2010 в 01:40

Если Вы используете , Смешение , чтобы сделать его дополнительным легкий и не испытать любые затруднения при получении корректного пути для Источник атрибут, просто перетаскивает изображение от панели Project на разработчика.

3
ответ дан Peter Mortensen 19 May 2018 в 10:52
поделиться
  • 1
    Хорошо I' ve, с помощью Инструментов MZ в течение года... так Tony, я теперь использую больше чем 1 или 2 функции! Как долгосрочный программист Доступа (с его собственным набором хороших/плохих методов), MZT стал ' должен have' аксессуар:) Спасибо! – maxhugen 30 August 2011 в 10:25

Да, это - правильный путь.

Вы могли использовать изображение в файле ресурсов просто с помощью пути:

<Image Source="..\Media\Image.png" />

необходимо установить действие сборки файла изображения к "Ресурсу".

38
ответ дан Peter Mortensen 19 May 2018 в 10:52
поделиться

Лучшей практикой использования изображений, видео и т.д. я считаю следующую:

  • Измените ваши файлы "Build action" на "Content". Обязательно проверьте Копировать в директорию сборки.
    • Находится в меню "Правый клик" в окне Solution Explorer.
  • Image Source в следующем формате:
    • "/"YourAssemblyName";component/"YourPath"/"YourImage.png""

Пример

<Image Source="/WPFApplication;component/Images/Start.png" />

Преимущества:

  • Файлы не встраиваются в сборку.
    • Менеджер ресурсов будет поднимать некоторые проблемы переполнения памяти при слишком большом количестве ресурсов (во время сборки).
  • Можно вызывать между сборками.
168
ответ дан 22 November 2019 в 23:47
поделиться

Полное описание того, как использовать ресурсы: Ресурсы приложения WPF, контент и файлы данных

И как ссылаться на них, читайте "Упаковать URI в WPF ".

Короче говоря, есть даже средства для ссылки на ресурсы из ссылочных / ссылающихся сборок.

13
ответ дан 22 November 2019 в 23:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: