Question de transparence par se Chevauchent PictureBox est au C#
J'affiche dans un panneau PictureBox
se chevauchent, car chaque PictureBox
est utilisé
en tant que calque. Première fois une PictureBox
est défini et ajouté à panneau, il est couleur d'arrière-plan
il est transparent, et c'est images sont vides.
Le problème est, la couche inférieure ne peut pas être vu, l'image transparente, montre l'
panneau de sol. L'exception est que le fond de PictureBox
'image est perçue.
J'ai essayé avec d'autres contrôles comme étiquette. Le problème ne pouvait être résolu 🙁
Grâce.
C'est un peu dur à suivre. Je pense que si vous l'expliquer différemment, vous pouvez obtenir quelques réponses.
OriginalL'auteur Cmptrb | 2009-08-05
Vous devez vous connecter pour publier un commentaire.
C'est parce que, si je me souviens bien, la définition d'une couleur de fond Transparente (sa valeur réelle est nulle, non?) n'est-ce pas vraiment transparent. Ce que Windows n'est-il regarde le contrôle de son conteneur parent couleur d'arrière-plan et définit les contrôles de la couleur d'arrière-plan.
Vous pouvez voir ce produit en particulier avec des panneaux. Sans contenu, panneaux Transparent vous permettra de voir derrière eux, non? Mal. Si vous mettez un panneau sur le dessus d'un tas de, disons, des contrôles de zone de texte et mettez-le à la Transparence, vous ne serez pas en mesure de voir les zones de texte derrière elle.
Au lieu de cela, obtenir une réelle transparence, vous avez une surcharge OnPaintBackground pour la commande en question et, surtout, de ne rien faire du tout (NE PAS appeler à la base.OnPainBackground!!!!)... Il n'y a plus que cela, sans doute, mais voici un exemple d'un travail TransparentPanel de contrôle que nous utilisons ici:
Nous avons utilisé cette classe avec succès pour créer véritablement de panneaux transparents au cours des dernières Formes de Windows apps. Nous l'avons utilisé comme un hack pour fixer le "droit-cliquez sur le menu contextuel s'affiche au-dessus du bouton" commandes de problème.
Vous pouvez mettre de la classe ci-dessus dans un projet de bibliothèque de contrôles que vous avez de référence (c'est ce que nous faisons) ou vous pouvez aussi l'avoir dans votre projet directement .cs fichier. Il n'apparaît pas dans votre boîte à outils, sauf si vous ajoutez à cela, cependant. Encore, vous pouvez faire glisser un régulier de panneau dans votre domaine de la conception et de l'ouvrir le concepteur.cs fichier et de le modifier manuellement l'objet à votre TransparentPanel.
public const int WS_EX_TRANSPARENT = 0x20; cp.ExStyle |= WS_EX_TRANSPARENT;
j'ai enfin trouvé ce que je voulais, je ne pouvais pas trouver tout utile post au sujet de faire un panneau transparent sur un autre contrôle. Merci pour cette excellent billet
OriginalL'auteur Sean Hanley
C'est mon prendre sur elle:
Vous devez ajouter un peu plus de logique pour le positionnement de l'image comme vous le souhaitez et modifier la méthode OnPaint en conséquence.
OriginalL'auteur Rado
J'ai été capable de le faire en VB. Il ya une couple de trucs bien. Tout d'abord, vous devez ajouter les zones de l'image à chaque d'autres. Seconde les images dans les cases de l'image doivent être enregistrées au format Png.
Pour cette application, j'ai eu pour afficher 3 différentes couches sur le dessus d'un calque d'arrière-plan et de les activer et de désactiver les cases à cocher. Si cela ne fonctionne pas, jouer avec la façon dont vous enregistrez votre Png, c'est un peu pointilleux à ce sujet.
OriginalL'auteur dwidel
Que vous devriez faire
de sorte que votre Image ne sera pas étendu à
OriginalL'auteur zee