2016-04-09 9 views
1

アクセシビリティ上の理由から、当社のソフトウェアの使用者がハイコントラストのテーマを使用していたものの、チェックチックが背景と同じ色であるためToolStripMenuItemのチェック状態を見ることができません。.NET ToolStripMenuItemコントラストチェックの目盛りがハイコントラストのテーマで表示されない

これは通常のWindowsテーマである:

、これは、高コントラスト、Windowsのテーマである:

回避策として、カスタムのティックイメージを使用せずに高コントラストのテーマでチェック状態を表示する方法はありますか?

この.NETコントロールの意図的なのかバグですか?私が見ることができるように、すべてのデフォルトの.NETコントロールが高コントラストのテーマを適切にサポートしているので、これを除きます。

答えて

0

特にイメージがある場合、正しくレンダリングする方法が見つかりませんでした。このレンダラーがアイテムに太字のテキストをチェックします

public class ToolStripCheckedBoldRenderer : ToolStripProfessionalRenderer 
{ 
    protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e) 
    { 
     if (e.Item is ToolStripMenuItem && ((ToolStripMenuItem)e.Item).Checked) 
     { 
      e.TextFont = new Font(e.Item.Font, FontStyle.Bold); 
     } 

     base.OnRenderItemText(e); 
    } 
} 

tsMain.Renderer = new ToolStripCheckedBoldRenderer();

:チェックは、各項目の画像があるときに表示することは容易ではないので、しかし、代わりに、あまりにも通常のテーマでの画像確認状態に便利です回避策が見つかりました:

そのため、この解決策は何もないよりはましですが、それでもよりよい解決策を必要としています。

関連する問題