如何编写实时MetroTile自定义控件?

时间:2016-03-14 11:48:29

标签: c# winforms live-tile

使用MetroFramework 1.3.5和.NET Transitions,在Windows窗体中,我编写了实时MetroTile的代码。以下是用于更新磁贴的Timer Tick方法:

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

将瓷砖放置在具有尺寸的MetroPanel内(tile.Width + 10,tile.Height + 8)。如果在转换期间用户单击背景位图,则需要使用metroPanel1_Click()。

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

谢谢!

0 个答案:

没有答案