2011-10-26 12 views
2

暗い背景を使用する必要があるコンテキストメニューがあります。チェックマージンを使用し、いくつかのサブメニューがあります。チェック・マークとサブメニューを示す矢印は黒いので見えにくいです。私は色を変える方法がない。 (私はテキストのために白に設定したForeColorを使うべきであることは明らかですが、これはチェックマークや矢印には影響しないようです)WinFormsのコンテキストメニューでチェックマークや「その他の」矢印の色を変更するにはどうすればよいですか?

これを行う方法はありますか?

EDIT:画像マージンの画像を回避策として使用しています。しかし、私たちはそれに他の問題を抱えています。問題を解決する前に、私は基本的な問題を簡単に解決しようと考えていました。

+1

この回答には基本的なアプローチが示されています。http://stackoverflow.com/questions/2097164/how-to-change-system-windows-forms-toolstripbutton-highlight-background-color-wh/2097341#2097341あなたは、 OnRenderArrowメソッドとOnRenderItemCheckメソッドをオーバーライドする必要があります。 –

+1

@ハンス - ありがとう。私は数日後に、クラッシュしたワークステーションから復旧した後にそれを試してみるでしょう。 :( –

答えて

1

同様のケースで私が過去にしたことは、コンテキストメニューの画像を切り替えることによってチェックボックスを「エミュレート」することでした。

I.e.メニュー項目がチェック/チェックされていない(つまり、メニュー項目のTag内のブール値として)かどうかを覚えておいて、メニュー項目の状態に応じて画像をチェック画像または画像なしに適切に変更します。

MenuItemから独自のクラスを派生させ、そこのチェックを派生クラスのユーザーに透過的に変更することもできます。

右の矢印は、ショートカットが表示されている領域の内側に別のフォント(Wingdingsなど)で矢印を描くことでエミュレートできると仮定します。

まったく別の方法として、the owner draw functionality of the MenuItemを使用してください。

+1

私はイメージマージンのアプローチを使用していますが、他の問題があり、解決する前に、私は基本的な問題を簡単に解決しようと考えていました。 –

関連する問題