2010-09-25 29 views
2

Je développe l'application de périphérique intelligent en C#. Je suis nouveau sur Windows Mobile. J'ai ajouté l'image d'arrière-plan au formulaire dans mon application en utilisant le code suivant. Je veux rendre l'étiquette & d'autres contrôles sur ce formulaire transparent de sorte que mon formulaire de fenêtres sera affiché correctement.Comment rendre l'étiquette et les autres contrôles transparents avec l'image d'arrière-plan sur Windows Mobile?

protected override void OnPaint(PaintEventArgs e) 
       { 
        base.OnPaint(e); 
        Bitmap CreateCustomerImage = new Bitmap(@"/Storage Card/background.png"); 
        e.Graphics.DrawImage(CreateCustomerImage, 0, 0); 
       } 

Comment faire? Comment résoudre ce problème? Pouvez-vous me fournir un code ou un lien à travers lequel je peux résoudre le problème ci-dessus?

+0

duplicata possible de: http://stackoverflow.com/questions/3793261/how-to-make-the-background-image-transparent-in-windows-mobile/3793670#3793670 – Patrick

Répondre

1

Windows CE ne prend pas en charge les contrôles transparents, ce qui tend à être une énorme douleur. Vous devez utiliser quelque chose comme la transparence ColorKey, donc dans votre OnPaint, vous devez remplir l'arrière-plan avec une couleur (le magenta est populaire) et utiliser SetColorKey pour rendre cette couleur transparente.

Il existe plusieurs didacticiels en ligne pour la transparence des touches de couleur. Here is one que je viens de trouver avec un moteur de recherche qui semble raisonnable mais n'hésitez pas à en rechercher d'autres aussi.

L'endroit où cela tombe est lorsque vous avez des contrôles dans un contrôle de conteneur, qui est alors sur le formulaire. Pour que cela fonctionne correctement, vous devez mettre en cascade les appels à découper les régions depuis le formulaire. Je n'ai pas un échantillon prêt de ce qui n'est pas dans un projet d'expédition, donc je ne peux pas facilement le poster. Si vous rencontrez cela, mettez à jour la question et je verrai si je peux extraire quelque chose.