Загрузка изображений в приложение WPF - PullRequest
0 голосов
/ 16 июня 2010

Я не знаком с 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" предназначен для сборки с ссылкой. (Думаю, проблема с ответом в том, что авторитетная часть отсутствует)

1 Ответ

2 голосов
/ 16 июня 2010

работают следующие работы:

new BitmapImage(new Uri("/MyProject;component/Resources/next.png", UriKind.Relative));

Просто замените «MyProject» на имя вашего проекта и настройте путь к вашему изображению.

Убедитесь, что изображение добавлено в проект, для параметра «BuildAction» установлено значение «Ресурс».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...