ScriptMenu改變Hover後的顏色

ScriptMenu改變Hover後的顏色

ScriptMenu改變Hover後的顏色

 

WinFrom 的ScriptMenu本身沒有Hover 或是 OnMouseOver之類的事件,

因此如果需要這類的功能必須要去自訂ScriptMenu的Renderer屬性

 

 

下面的範例是去自訂ScriptMenu的背景顏色、滑鼠移過、滑鼠點擊等背景顏色的改變

改變前

2013-4-22 下午 09-58-13

改變後

2013-4-22 下午 11-05-34

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;	}
	}

}