Visual Studio C#MetroFramework MetroButton更改Back Color

时间:2014-11-27 09:25:18

标签: c#

我正在寻找在Button Click或Timer上更改Button Backcolor的可能性。

使用MetroFramework是可以的;表单样式设置为MetroForm,对象可用。

我找到了一些代码,但它不起作用。

using MetroFramework.Forms;
using MetroFramework.Drawing;
using MetroFramework.Controls;
using System.Drawing;

private void metroButton1_Click(object sender, EventArgs e)
    {
        //metroButton1.BackColor = Color.Green;
        metroButton1.BackColor = System.Drawing.Color.AliceBlue;
        metroButton1.Text = "button click";
        //metroButton1.BackColor.System.Drawing.Color.DarkGray;

2 个答案:

答案 0 :(得分:2)

问题解决了

usecustombackcolor设置为true

metroButton1.BackColor = Color.Lime;

THX

答案 1 :(得分:1)

根据MetroButton类(on github)的源代码,有一个属性:

    private bool useCustomBackColor= false;
    [DefaultValue(false)]
    [Category(MetroDefaults.PropertyCategory.Appearance)]
    public bool UseCustomBackColor
    {
        get { return useCustomBackColor; }
        set { useCustomBackColor = value; }
    }

如果OnPaintBackground(PaintEventArgs e)中的此属性为false,则会设置一个设置默认背景颜色的代码:

                if (!useCustomBackColor)
                {
                    backColor = MetroPaint.BackColor.Button.Normal(Theme);
                } 

设置UseCustomBackColor应解决您的问题