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