Изменить изображение PictureBox на изображение из моих ресурсов? - PullRequest
22 голосов
/ 03 июля 2011

Как мне установить изображение PictureBox на изображение из моих ресурсов?

(пробовал безуспешно: pictuerbox.Image = "img_location";)

Ответы [ 6 ]

61 голосов
/ 03 июля 2011

Если вы загрузили ресурс с помощью интерфейса Visual Studio, то вы должны сделать это:

picturebox.Image = project.Properties.Resources.imgfromresource
10 голосов
/ 06 декабря 2013

Кен имеет правильное решение, но вы не хотите добавлять метод-элемент picturebox.Image.Load ().

Если вы делаете это с помощью Load, а ImageLocation не установлен, произойдет сбой с исключением «Расположение изображения должно быть установлено». Если вы используете метод-член picturebox.Refresh (), он работает без исключения.

Законченный код ниже:

public void showAnimatedPictureBox(PictureBox thePicture)
{
            thePicture.Image = Properties.Resources.hamster;
            thePicture.Refresh();
            thePicture.Visible = true;
}

Он вызывается как: showAnimatedPictureBox (myPictureBox);

Мой XAML выглядит так:

    <Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:wfi="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
        xmlns:winForms="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" x:Class="myApp.MainWindow"
        Title="myApp" Height="679.079" Width="986">

        <StackPanel Width="136" Height="Auto" Background="WhiteSmoke" x:Name="statusPanel">
            <wfi:WindowsFormsHost>
                <winForms:PictureBox x:Name="myPictureBox">
                </winForms:PictureBox>
            </wfi:WindowsFormsHost>
            <Label x:Name="myLabel" Content="myLabel" Margin="10,3,10,5" FontSize="20" FontWeight="Bold" Visibility="Hidden"/>
        </StackPanel>
</Window>

Я понимаю, что это старый пост, но загрузка изображения непосредственно с ресурса была крайне непонятной на сайте Microsoft, и это было (частичное) решение, к которому я пришел. Надеюсь, это кому-нибудь поможет!

6 голосов
/ 21 марта 2015

Хорошо ... так что сначала вам нужно импортировать в ваш проект изображение

1) Выберите изображение в поле «Дизайн формы»

2) Откройте Задачи PictureBox (это маленькая стрелка, указанная справа на краю на картинке)

3) Нажмите «Выбрать изображение ...»

4) Выберите вторую опцию «Файл ресурсов проекта:» (эта опция создаст папку с именем «Ресурсы», к которой вы можете получить доступ через Properties.Resources)

5) Нажмите на импорт и выберите свое изображение на своем компьютере (теперь копия изображения с тем же именем, что и изображение, будет отправлена ​​в папку ресурсов, созданную на шаге 4)

6) Нажмите на ОК

Теперь изображение в вашем проекте, и вы можете использовать его с командой «Свойства». Просто введите этот код, если вы хотите изменить изображение из картинки:

pictureBox1.Image = Properties.Resources.myimage;

Примечание: myimage представляет имя изображения ... после ввода точки после ресурсов в ваших настройках это будет импортированный вами файл изображения

3 голосов
/ 03 июля 2011

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

См. Следующую ссылку: http://www.java2s.com/Code/CSharp/Development-Class/Saveandloadimagefromresourcefile.htm

2 голосов
/ 06 ноября 2013

попробуйте следующее:

 myPictureBox.Image = global::mynamespace.Properties.Resources.photo1;

и замените пространство имен пространством имен вашего проекта

0 голосов
/ 03 июля 2011

Вы должны указать полный путь к файлу ресурса в качестве имени 'image в ресурсах вашего приложения, см. Пример ниже.

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    PictureBox1.Image = My.Resources.Chrysanthemum
End Sub

В пути, назначенном свойству Image после MyResources, укажитеимя ресурса.

Но прежде чем делать то, что вам нужно импортировать в разделе ресурсов вашего приложения, из файла изображения существует файл, или он может создать свой собственный.

Пока

...