2010-04-20 5 views
1

J'affiche un PNG avec un arrière-plan transparent qui semble bien dans Windows 7, mais ensuite j'exécute mon application en mode XP ou bureau à distance sur une machine Windows XP et le PNG semble incorrect. J'ai remarqué que si je désactive « Mode intégration » ou d'exécuter l'application sur XP sans bureau à distance, l'image semble bien.DrawImage en mode XP ou Remote Desktop

Comment puis-je obtenir DrawImage pour rendre correctement le PNG en mode XP ou bureau à distance?

image à l'intérieur de Windows 7

alt text http://www.freeimagehosting.net/uploads/957bb6ea8b.png

image à l'intérieur bureau XP Mode ou à distance

alt text http://www.freeimagehosting.net/uploads/08f1fbec46.png

Voici mon code:

protected override void OnPaint(PaintEventArgs e) 
{ 
    Image image = Image.FromFile("hello.png", false); 
    Bitmap bmp = new Bitmap(image); 

    Rectangle destRect = new Rectangle(0, 0, image.Width, image.Height); 

    e.Graphics.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel); 
    base.OnPaint(e); 
} 

Répondre

2

Remote Desktop par fonctionne par défaut avec 16 bits la couleur, que je crois incompatible avec l'alpha-blending. Vous devez reconfigurer l'affichage pour le mode 32 bits, si cela est possible.

+0

Si je charge et afficher la même image en utilisant un contrôle PictureBox, il semble bien en mode XP, même si mon DrawImage ne fonctionne pas. Il semble donc que il doit y avoir un moyen d'obtenir DrawImage de rendre correctement malgré qu'il soit 16 bits. – simplecoder

+1

@simplecoder, en utilisant un contrôle PictureBox convertit la transparence à l'arrière-plan du contrôle et élimine le mélange alpha qui doit se produire. –

Questions connexes