C# 如何编写live MetroTile自定义控件?

C# 如何编写live MetroTile自定义控件?,c#,winforms,live-tile,C#,Winforms,Live Tile,使用Windows窗体中的MetroFramework 1.3.5和.NET转换,我编写了live MetroTile的代码。以下是用于更新互动程序的计时器勾选方法: private void updateTiles_timer_Tick(object sender, EventArgs e) { metroPanel1.BackColor = Color.Transparent; Bitmap bm = new Bitmap(metroPanel1.Width, metroPa

使用Windows窗体中的MetroFramework 1.3.5和.NET转换,我编写了live MetroTile的代码。以下是用于更新互动程序的计时器勾选方法:

private void updateTiles_timer_Tick(object sender, EventArgs e)
{
    metroPanel1.BackColor = Color.Transparent;
    Bitmap bm = new Bitmap(metroPanel1.Width, metroPanel1.Height);
    metroTile_startStop.DrawToBitmap(bm, new Rectangle(metroTile_startStop.Location.X, metroTile_startStop.Location.Y, metroTile_startStop.Width, metroTile_startStop.Height));
    metroPanel1.BackgroundImage = bm;

    if (animationFlag)
    {
        metroTile_startStop.Text = Properties.Resources.startStopTile_alternateText;
        animationFlag = false;
     }
     else
     {
         metroTile_startStop.Text = "Start";
         animationFlag = true;
     }
     Transition.run(metroTile_startStop, "Top", metroTile_startStop.Height - 16, 4, new TransitionType_Linear(500));
}

private void metroPanel1_Click(object sender, EventArgs e)
{
    metroTile_startStop.PerformClick();
}
瓷砖放置在尺寸为(瓷砖宽度+10,瓷砖高度+8)的MetroPanel内。如果在转换过程中,用户单击背景位图,则需要metroPanel1_Click()

我没有足够的经验,在编写自定义控件时需要帮助,以便在将来的项目中轻松重用它。控件应该有一个属性,用于设置计时器间隔和设置平铺文本的可能性。如果我有一个工作代码,那么我可以扩展它来设置平铺图像、自定义动画等


谢谢大家!

我需要帮助编写自定义控件。您似乎忘记问问题了。我试图从其他控件的代码示例开始创建自定义控件,但我没有弄清楚如何在调用Timer Tick方法时更新互动程序(当我更改互动程序文本时,互动程序没有更新(可能我应该使用Paint()?),以及如何创建新的控件属性(如计时器间隔和备用文本)。你应该将问题分解成更小、更具体的部分,然后才能解决问题。当你提出一个小而具体的问题并编写一些代码来重现问题时,通常你是第一个解决问题的人,如果你找不到问题。还可以使用你的具体问题描述和代码示例重现问题其他用户可以帮助您解决问题。因此,我建议您编辑问题并提出具体问题。@RezaAghaei感谢您的建议。您可以在此处找到我的具体问题: