ScriptMenu改變Hover後的顏色
ScriptMenu改變Hover後的顏色
WinFrom 的ScriptMenu本身沒有Hover 或是 OnMouseOver之類的事件,
因此如果需要這類的功能必須要去自訂ScriptMenu的Renderer屬性
下面的範例是去自訂ScriptMenu的背景顏色、滑鼠移過、滑鼠點擊等背景顏色的改變
改變前
改變後
CODE:
{
//重新定義menuStrip的外觀為我們自訂的Renderer
menuStrip1.Renderer = new MyRenderer ();
}
private class MyRenderer : ToolStripProfessionalRenderer
{
//自訂的Renderer 繼承 MyColors
public MyRenderer() : base (new MyColors()) { }
}
//自定義MyColors 繼承 ProfessionalColorTable
//override 顏色屬性
private class MyColors : ProfessionalColorTable
{
//子項目被點選後的顏色
public override Color MenuItemSelected
{
//回傳深藍色
get { return Color.Navy; }
}
//子項目被點選後的漸層起始顏色
public override Color MenuItemSelectedGradientBegin
{
get { return Color.Navy; }
}
//子項目被點選後的漸層結束顏色
public override Color MenuItemSelectedGradientEnd
{
get { return Color.Navy; }
}
//子項目按下時的漸層起始顏色
public override Color MenuItemPressedGradientBegin
{
get { return Color .Navy; }
}
//子項目按下時的漸層結束顏色
public override Color MenuItemPressedGradientEnd
{
get { return Color .Navy; }
}
//MenuStrip父層漸層起始顏色
public override Color MenuStripGradientBegin
{
get { return Color .Blue; }
}
//MenuStrip父層漸層結束顏色
public override Color MenuStripGradientEnd
{
get { return Color .Blue; }
}
}