web-dev-qa-db-fra.com

Changer l'image de PictureBox en image à partir de mes ressources?

Comment définir une image PictureBox sur une image de mes ressources?

(J'ai essayé sans succès: pictuerbox.Image = "img_location";)

21
MasterMastic

Si vous avez chargé la ressource à l'aide de l'interface utilisateur de Visual Studio, vous devriez pouvoir le faire:

picturebox.Image = project.Properties.Resources.imgfromresource
58

Ken a la bonne solution, mais vous ne voulez pas ajouter la méthode membre picturebox.Image.Load ().

Si vous le faites avec une charge et que ImageLocation n'est pas défini, il échouera avec une exception "L'emplacement de l'image doit être défini". Si vous utilisez la méthode membre picturebox.Refresh (), cela fonctionne sans exception.

Code complété ci-dessous:

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

Il est appelé comme suit: showAnimatedPictureBox (myPictureBox);

Mon XAML ressemble à:

    <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>

Je sais que c’est un vieux message, mais le chargement de l’image directement à partir d’une ressource était extrêmement flou sur le site de Microsoft et c’était la solution (partielle) à laquelle je suis arrivé. J'espère que ça aide quelqu'un!

8
Phorkus Maximus

Ok ... alors vous devez d'abord importer l'image dans votre projet

1) Sélectionnez la zone d’image dans Conception de formulaire.

2) Ouvrir les tâches de PictureBox (c'est la petite flèche imprimée à droite sur le bord de la boîte à images)

3) Cliquez sur "Choisir une image ..."

4) Sélectionnez la deuxième option "Fichier de ressources du projet:" (cette option créera un dossier appelé "Ressources" auquel vous pourrez accéder avec Properties.Resources).

5) Cliquez sur Importer et sélectionnez votre image sur votre ordinateur (une copie de l'image portant le même nom que l'image sera maintenant envoyée dans le dossier Ressources créé à l'étape 4).

6) Cliquez sur ok

L'image est maintenant dans votre projet et vous pouvez l'utiliser avec la commande Propriétés. Il vous suffit de saisir ce code pour changer l'image à partir de picturebox:

pictureBox1.Image = Properties.Resources.myimage;

Remarque: myimage représente le nom de l'image ... après avoir tapé le point après Ressources, dans vos options, ce sera votre fichier image importé.

6
Alin Leon

Vous pouvez utiliser un gestionnaire de ressources pour charger l'image.

Voir le linK suivant: http://www.Java2s.com/Code/CSharp/Development-Class/Saveandloadimagefromresourcefile.htm

Curieusement un lien depuis un site Java ...;)

3
The Evil Greebo

essayez ce qui suit:

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

et remplacez namespace par votre namespace de projet

2

Vous devez spécifier le chemin d'accès complet du fichier de ressources sous le nom de 'image dans les ressources de votre application, voir l'exemple ci-dessous.

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

Dans le chemin attribué à la propriété Image après MyResources, spécifiez le nom de la ressource.

Mais avant de faire tout ce que vous devez importer dans la section des ressources de votre application à partir d'un fichier image, il existe ou il peut créer le vôtre.

Au revoir

0
Carmelo La Monica