Visual Studio 2008 の簡単なドロップダウンで画像ストリップの色を変更できるかどうか、またどのように変更できるかを知っている人はいますか? 現在、ドロップ ダウン メニューには独自のアイテム コレクションがあり、ドロップ ダウン メニューのそれぞれの横にはイメージ ストリップがあります。これは現在、明るい色から暗い色へのグラデーションの灰色です。この色を変更できるか、または完全に削除できるかどうかを知りたいですか? 前もってありがとう、クレイグ。
2 に答える
ToolStripRendererのサブクラスを作成し、適切なレンダリングメソッドをオーバーライドすることで、この動作を実現できます。例については、MSDNを参照してください。
WinFormsソリューションを探していると思います。WPF / Xamlの場合、ソリューションはもちろん完全に異なり、コントロールテンプレートを変更することで実現できます。
私はWPFについて知らないので、あなたがwinformsについて尋ねていると仮定します。
画像ストリップを非表示にするだけの場合は、 プロパティShowImageMargin
とShowCheckMargin
プロパティを false に設定できます。ただし、メニュー項目の画像を表示することはできません。
少なくとも XP ではRenderMode
、ドロップダウンのプロパティをに設定するToolStripRenderMode.System
と、画像のマージン装飾のないメニューが表示されます。ただし、アプリケーションのビジュアル スタイルと一致しない場合があります。
BackColor
メニュー項目ごとにを設定すると、画像の余白が目立たなくなります。
OnRenderImageMargin
ドロップダウンのビジュアル スタイルを変更せずに画像の余白を非表示にするには、次のように、空の関数でレンダラーを作成する必要があります。
class MyRenderer : ToolStripProfessionalRenderer
{
protected virtual void OnRenderImageMargin(ToolStripRenderEventArgs e)
{
// do nothing
}
}
次に、ドロップダウンのRenderer
プロパティを新しいレンダラー クラスのインスタンスに設定します。レンダラーのColorTable
.
ただし、これらのいずれかを行う前に、次のことを自問してください。
- インターフェイスをなじみのないものに変更すると、使いやすさにメリットはありますか?
- 存在する場合、この利点は、ユーザーのフィードバックに迅速に対応できるようにコードをシンプルに保つことの利点よりも大きいですか?
最初の質問に対する答えは通常「いいえ」です。