Не удается найти источник изображения wpf [duplicate]

С new_list = my_list у вас фактически нет двух списков. Назначение просто копирует ссылку на список, а не фактический список, поэтому оба new_list и my_list относятся к тому же списку после назначения.

Чтобы на самом деле скопировать список, у вас есть различные возможности :

  • Вы можете использовать встроенный метод list.copy() (доступный с python 3.3):
    new_list = old_list.copy()
    
  • Вы можете отрезать его:
    new_list = old_list[:]
    
    мнение Алексея Мартелли (по крайней мере, в 2007 году ) об этом означает, что это странный синтаксис, и нет смысла использовать его когда-либо . ;) (По его мнению, следующий более читабель).
  • Вы можете использовать встроенную функцию list() :
    new_list = list(old_list)
    
  • Вы можете использовать общий copy.copy() :
    import copy
    new_list = copy.copy(old_list)
    
    Это немного медленнее, чем list(), потому что сначала он должен узнать тип данных old_list.
  • Если список содержит объекты, и вы также хотите их скопировать, используйте generic copy.deepcopy() :
    import copy
    new_list = copy.deepcopy(old_list)
    
    Очевидно, самый медленный и самый необходимый для памяти способ, но иногда неизбежный.

Пример:

import copy

class Foo(object):
    def __init__(self, val):
         self.val = val

    def __repr__(self):
        return str(self.val)

foo = Foo(1)

a = ['foo', foo]
b = a.copy()
c = a[:]
d = list(a)
e = copy.copy(a)
f = copy.deepcopy(a)

# edit orignal list and instance 
a.append('baz')
foo.val = 5

print('original: %r\n list.copy(): %r\n slice: %r\n list(): %r\n copy: %r\n deepcopy: %r'
      % (a, b, c, d, e, f))

Результат:

original: ['foo', 5, 'baz']
list.copy(): ['foo', 5]
slice: ['foo', 5]
list(): ['foo', 5]
copy: ['foo', 5]
deepcopy: ['foo', 1]

19
задан Martyn Ball 7 September 2014 в 20:45
поделиться

3 ответа

  • Создайте папку (например, images) в проекте Visual Studio.
  • Добавьте файлы изображений в эту папку.
  • Установите их Build Action в Resource (в окне «Свойства» см. второе изображение в этом ответе ).

Затем напишите свойство UriSource, как вы уже сделали:

UriSource="/images/jamsnaps-dark.png"

Этот URI является фактически URI файла файла ресурсов , где префикс автоматически добавляется WPF.

30
ответ дан Community 21 August 2018 в 01:22
поделиться
  1. Добавить изображение в каталог вашего проекта
  2. В проводнике решений щелкните правой кнопкой мыши изображение и выберите Include in Project

Действие сборки должно быть установлено по умолчанию Resource.

Затем вы можете начать использовать путь изображения относительно корня, например images/text.jpg, если вы поместите его в папку с именем images.

0
ответ дан codeafin 21 August 2018 в 01:22
поделиться

Две опции:

1) Выйдите из bin / Debug и в свою папку приложений с помощью ../../, а затем на свое изображение.

  <Image>
      <Image.Source>
           <BitmapImage  UriSource="../../images/jamsnaps-dark.png" />
      </Image.Source>
   </Image>

2) Скомпилируйте свои изображения как контент из свойств в контекстном меню в файле изображения, а затем при компиляции они будут помещены в отладочную. Я не помню, если вам также нужно сказать им, чтобы они копировали локальные объекты также в свойствах (я не рядом с компьютером в данный момент, поэтому я не могу проверить.

1
ответ дан eran otzap 21 August 2018 в 01:22
поделиться
  • 1
    Cheers, также работал, но другие ответили немного объяснимо :) – Martyn Ball 7 September 2014 в 21:25
  • 2
    Он сделал что-то еще. что тоже хорошо. Суть этого заключается в том, чтобы знать, где вы находите свои файлы, могут ли они выполняться как ресурсы / содержимое или просто помещены в ваше решение. Я не помню плюсы и минусы каждого метода. – eran otzap 7 September 2014 в 21:36
Другие вопросы по тегам:

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