C# Picturebox fond transparent ne semble pas fonctionner

Pour un projet de mine j'ai besoin d'afficher des images avec un fond transparent. J'ai fait quelques .les images png qui ont un arrière-plan transparent(pour vérifier que j'ai ouvert dans Photoshop). Maintenant, j'ai une classe qui étend la classe PictureBox:

class Foo : PictureBox
{
    public Foo(int argument)
        : base()
    {
        Console.WriteLine(argument);//different in the real application of course.
        //MyProject.Properties.Resources.TRANSPARENCYTEST.MakeTransparent(MyProject.Properties.Resources.TRANSPARENCYTEST.GetPixel(1,1)); //<-- also tried this
        this.Image = MyProject.Properties.Resources.TRANSPARENCYTEST;
        ((Bitmap)this.Image).MakeTransparent(((Bitmap)this.Image).GetPixel(1, 1));
        this.SizeMode = PictureBoxSizeMode.StretchImage;
        this.BackColor = System.Drawing.Color.Transparent;
    }
}

toutefois, cette affiche juste le picturebox avec un fond blanc, je n'arrive pas à le faire fonctionner avec un fond transparent.

  • Pourriez-vous fournir un lien vers une de vos images (le plus basique que vous avez)?
  • imgload.nl/upload/1301737511BLUE.png <-- c'est une des images que j'ai utiliser
  • Je me souviens vaguement (à partir de mon WinForm jours) qui, lors d'un contrôle de fond est marqué "transparent", c'est pas vraiment rendu transparent. Au lieu de cela, il est rendu avec la couleur d'arrière-plan du conteneur. Est la couleur de fond de votre bac blanc?
  • Je suis assez sûr que c'est ce qu'il est. En WinForms, il n'y a pas une véritable transparence pour les images (pas par défaut). Si vos contrôles se chevauchent, vous allez le voir.
  • Puis je commence à haïr C# de plus en plus, pas de transparence lol? le seul conteneur, il a une forme, avec un fond blanc, en effet.
  • Que pourriez-vous attendre de la forme s (blanc) à l'arrière-plan visible à travers les zones transparentes? Je ne comprends même pas ce que la question est ici... Hans réponse est à droite sur l'argent. (Notez aussi que cela n'a rien à voir avec le langage C#. C# ne dispose pas d'une interface utilisateur; vous êtes à l'aide de WinForms pour que, qui enveloppe le natif de Windows API. Ce n'était pas vraiment conçu pour la transparence. Vous n'êtes pas à construire des pages web, mais les applications de bureau.)

InformationsquelleAutor teuneboon | 2011-04-02