【发布时间】:2016-09-15 19:42:40
【问题描述】:
我在 VS 2015 中使用 Win Form Metro 框架在 Windows 7 中使用 Metro Tiles 构建 Metro Form。当鼠标进入 Metro Tile 时,我希望改变背景色和前景色,当鼠标离开时,改变回来.但是,它不起作用。什么也没发生,我不知道我做错了什么。
在 Form1.cs(Design) 文件中,我将所有图块的以下属性设置为:
BackColor = White
ForeColor = Black
Name = caseCompassDevo
CustomBackground = True
CustomForeColor = True
在 Form1.Designer.cs 文件中,我在 InitializeComponent() 方法中有以下代码:
// caseCompassDevo
//
this.caseCompassDevo.BackColor = System.Drawing.Color.White;
this.caseCompassDevo.CustomBackground = true;
this.caseCompassDevo.CustomForeColor = true;
this.caseCompassDevo.ForeColor = System.Drawing.Color.Black;
this.caseCompassDevo.Location = new System.Drawing.Point(23, 92);
this.caseCompassDevo.Name = "caseCompassDevo";
this.caseCompassDevo.Size = new System.Drawing.Size(149, 87);
this.caseCompassDevo.TabIndex = 0;
this.caseCompassDevo.Text = "Case Compass DEVO";
this.caseCompassDevo.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.caseCompassDevo.Click += new System.EventHandler(this.caseCompassDevo_Click);
this.caseCompassDevo.MouseEnter += new System.EventHandler(this.caseCompassDevo_MouseEnter);
this.caseCompassDevo.MouseLeave += new System.EventHandler(this.caseCompassDevo_MouseLeave);
//
在我的 Form1.cs 文件中,我添加了以下事件:
namespace Links
{
public partial class Form1 : MetroFramework.Forms.MetroForm
{
public Form1()
{
InitializeComponent();
}
private void caseCompassDevo_MouseEnter(object sender, EventArgs e)
{
BackColor = System.Drawing.Color.FromArgb(0, 174, 219); //MetroUI blue
ForeColor = System.Drawing.Color.FromArgb(255, 255, 255); //white
}
private void caseCompassDevo_MouseLeave(object sender, EventArgs e)
{
BackColor = System.Drawing.Color.FromArgb(255, 255, 255); //white
ForeColor = System.Drawing.Color.FromArgb(0, 0, 0); //black
}
private void caseCompassDevo_Click(object sender, EventArgs e)
{
}
//private void caseCompassTest_MouseHover(object sender, EventArgs e)
//{
//}
}
}
【问题讨论】:
-
您确定将颜色应用到瓷砖上。看起来你将它应用到它自己的表单上。你不能试试 caseCompassDevo.BackColor = Color.Green;
-
@TimonPost 它被应用到 caseCompassDevo MetroFramework.Controls.MetroTile 属性
-
@TimonPost - 我错过了你答案的最后一部分。那行得通。谢谢!