2017-03-14 2 views
-1

Je dois faire quelque chose comme de la peinture, le seul diffère, vous pouvez dessiner sur l'écran. Lorsque l'utilisateur clique sur un outil (stylo, ligne, rect, texte, etc.), je prends une capture d'écran de l'écran et la place comme image de fond pour un second formulaire en plein écran. Ensuite, en manipulant les événements de la souris, dessinez dessus. En essayant de suivre MS Paint et de dessiner du texte en utilisant une troisième forme avec un RichTextBox à l'intérieur. Ce formulaire doit être transparent, et après je vais prendre une nouvelle capture d'écran et charger comme arrière-plan de deuxième forme.Texte étrange dans RichTextBox C#

Il s'agit du code pour la troisième forme qui est transparent.

this.FormBorderStyle = FormBorderStyle.None; 
this.TransparencyKey = Color.Turquoise; 
this.BackColor = Color.Turquoise; 
richTextBox1.BackColor = this.BackColor; 

enter image description here

enter image description here

Comme vous pouvez le voir, le texte est d'être bleu clair. C'est mon problème.

+1

formes Windows et la transparence ne se mélange pas très bien. Peut-être essayer d'écrire directement dans la troisième forme au lieu d'utiliser un RichTextBox, mais je ne parierai pas dessus, je vous souhaite vraiment de la chance – Pikoh

+0

@Pikoh probablement je le ferai ... Merci. –

+1

En outre: lors de l'utilisation de TransparencyKey, cela ne fonctionnera que pour la couleur exacte ____. Votre texte semble avoir des pixels anti-aliasés de nombreuses couleurs semi-transparentes. Vous pouvez empêcher les pixels anti-aliasés lorsque vous utilisez le cordon, mais je doute que vous puissiez le faire dans un RTB – TaW

Répondre

1

Je n'ai pas trouvé de moyen de résoudre ce problème, et j'ai décidé d'utiliser label à la place. En manipulant l'événement de presse de clé et en rendant la couleur de retour d'étiquette transparente j'ai obtenu le résultat attendu.

enter image description here