2017-03-14 13 views
-1

私はペイントのような何かをする必要がありますが、唯一の違いは、画面上に描画することができます。ユーザーがツール(ペン、ライン、矩形、テキストなど)をクリックすると、私はスクリーンのスクリーンショットを撮り、それを第2のフルスクリーンフォームの背景イメージとして置く。その後、マウスイベントを処理することによって描画します。私は、Microsoftペイントに従って、その内部にRichTextBoxを持つ3番目のフォームを使用してテキストを描画しようとしています。このフォームは透過的でなければなりません。新しいスクリーンショットを取得して、2番目のフォームの背景としてロードします。RichTextBoxの奇妙なテキストC#

これは透明な3番目のフォームのコードです。

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

enter image description here

enter image description here

あなたが見ることができるように、テキストが水色されています。これは私の問題です。

+1

Windowsのフォームと透明度はあまりよく混合されません。おそらくRichTextBoxを使う代わりに3番目のフォームに直接書き込もうとしますが、私はそれに賭けません、本当にあなたが幸運を祈っています – Pikoh

+0

@Pikohおそらく私はそうします...ありがとう。 –

+1

また、TransparencyKeyを使用する場合、__one exact color__の場合にのみ機能します。テキストには、多くの半透過色のアンチエイリアスピクセルがあるようです。あなたは紐をはめるときにアンチエイリアス処理されたピクセルを防ぐことができますが、私はあなたがRTBの中でそれを行うことができるのではないかと疑います – TaW

答えて

1

これを修正する方法が見つかりませんでした。代わりにラベルを使用することにしました。キープレスイベントを処理しラベルの色を透明にすることで期待される結果が得られました。

enter image description here