Я не знаком с WPF, и мне просто непонятно.
Я пытаюсь создать небольшую компьютерную игру, и есть элементы, которые я хочу отображать динамически. Я использую класс Image и добавляю изображения на холст. Но я не уверен, что это хорошая практика. Я чувствую, что добавление элементов управления к холсту кажется немного запутанным. И я немного обеспокоен производительностью, потому что мне может понадобиться много изображений.
Настоящая проблема в том, что я не могу загрузить изображения из файлов изображений. Я вижу пример в учебнике, подобный этому (XMAL):
<Image Panel.ZIndex="0" Margin="0,0,0,0" Name ="image1">
<Image.Source>
<BitmapImage UriSource="Bell.gif" />
</Image.Source>
</Image>
Где в проект добавлен Bell.gif.
И я попытался скопировать это в код для создания изображения.
new Image { Source = new BitmapImage(new Uri("Blockade.bmp"))}
Но я получил недопустимое исключение Ури. После некоторых поисков в Интернете я обнаружил, что загрузка ресурсов динамически кажется сложной. Могу ли я загружать файлы, добавленные в проект, динамически?
Если я использую абсолютный путь, тогда все в порядке. Но я не могу ожидать, что каждый компьютер разместит файлы в одном месте. Могу ли я использовать относительный путь?
Я пытался
new Image { Source = new BitmapImage(new Uri(@"Pictures\Blank Land.bmp", UriKind.Relative)) }
Но это не работает. (Изображение пустое)
Спасибо.
Я удалил код. Я только что нашел решение в «Pack URIs в WPF» в MSDN.
Я могу использовать «pack: // application: ,,, / Blockade.bmp» (абсолютное) или «/Blockade.bmp» (относительное) для ресурса локальной сборки.
(Сначала я не использовал '/')
"pack: // application: ,,, / ReferencedAssembly; component / File.xaml" предназначен для сборки с ссылкой. (Думаю, проблема с ответом в том, что авторитетная часть отсутствует)