2009-07-31 5 views
0

Visual Studio 2008の単純なドロップダウンでイメージストリップの色を変更できますか?現在、ドロップダウンメニューを使用して、自分でアイテムを収集しています。ドロップダウンメニューには、イメージストリップがあります。イメージストリップは、灰色から暗いグラデーションまで、灰色です。私はこの色が変更されるか、おそらく完全に削除されるかどうかを知りたいと思っていますか? 事前におかげで、クレイグ。ドロップダウンメニューのプロパティ

+0

イメージストリップとは何ですか?私はそれが標準の.NETコントロールではないと推測しています。 – bernhof

+0

イメージストリップは、ドロップダウンメニューのアイテムのテキストの横に表示される色付き領域です。ドロップダウンメニューのさまざまなアイテムの横にイメージを配置できるようにするために確保された領域です。編集メニューの下にカットされたはさみアイコンは、画像ストリップ –

+0

に含まれています。これは、たとえば、Microsoft Wordでの例です。編集メニューをクリックすると、イメージまたはキーボードショートカットのために用意されているメニューリストの左側にストリップが表示されます。 –

答えて

0

私はWPFについて知らないので、winformsについて質問していると仮定します。

イメージストリップを非表示にしたい場合は、ShowImageMarginShowCheckMarginプロパティをfalseに設定できます。ただし、メニュー項目の画像を表示することはできません。

XPの場合、少なくともRenderModeのプロパティをドロップダウンボックスのToolStripRenderMode.Systemに設定すると、イメージのマージンが表示されないメニューが表示されます。アプリケーションのビジュアルスタイルと一致しない場合もあります。

メニュー項目ごとにBackColorを設定すると、画像の余白が不明瞭になります。

class MyRenderer : ToolStripProfessionalRenderer 
{ 
    protected virtual void OnRenderImageMargin(ToolStripRenderEventArgs e) 
    { 
     // do nothing 
    } 
} 

をし、その後にドロップダウンのRendererプロパティを設定します。

ドロップダウンのビジュアルスタイルを変更することなく、画像の余白を非表示にするには、そのように、空の OnRenderImageMargin機能とレンダラを作成する必要があります新しいレンダラークラスのインスタンスレンダラーのを変更することで、イメージマージンの色を同様に変更することができます。

しかし、あなたがそれらのいずれかを実行する前に、自分自身に問う:

  • はあまり馴染みのものにインタフェースを変更することにユーザビリティの利点がありますか?
  • コードがシンプルなので、ユーザーからのフィードバックにすばやく対応できるという利点よりも大きなメリットがありますか?

最初の質問に対する回答は、通常「いいえ」です。

+0

おかげでサイモン、ilそれは爆発と私は何ができるかを参照してください! –

1

この動作は、ToolStripRendererのサブクラスを作成し、適切なレンダリングメソッドをオーバーライドすることで実現できます。例については、MSDNを参照してください。

私はあなたがWinFormsソリューションを探していると仮定しています。 WPF/Xamlの場合、ソリューションはまったく異なり、コントロールテンプレートを変更することで実現できます。

関連する問題