显示标签和移动形状
本文关键字:移动 标签 显示 | 更新日期: 2023-09-27 18:35:06
我是C#和WPF的新手。我想执行以下操作:
-
在正好 5 秒后一个接一个地显示几个标签,
-
完成上述操作后,我必须在画布上移动一个形状大约十次,每次移动之间的时间间隔为 5 秒,
-
执行上述操作,但时间间隔仅为 2 秒。
这是代码:
DispatcherTimer timer2 = new DispatcherTimer();
float timerTime = 10;
Label timerlabel = new Label();
private void Window_Loaded(object sender, RoutedEventArgs e)
{
lbl.Content = "test";
startDisplay("hello!!");
startDisplay("bye");
Shapemove(1);
}
private void startDisplay(string st)
{
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds(5);
timer.Start();
timer.Tick += (s, e) =>
{
lbl.Content = st;
};
}
private void Shapemove(int i)
{
timer2.Interval = new TimeSpan(0, 0, 2);
timer2.Tick += new EventHandler(timer2_Tick);
timer2.Start();
}
void timer2_Tick(object sender, EventArgs e)
{
Random rand = new Random();
if (timerTime > 0)
{
canvas1.Children.Remove(timerlabel);
timerTime--;
canvas1.Children.Add(timerlabel);
timerlabel.FontSize = 20;
timerlabel.Content = timerTime + "s";
Canvas.SetLeft(rectangle1, rand.Next(640));
Canvas.SetTop(rectangle1, rand.Next(480));
}
else
{
timer2.Stop();
}
}
但上面的问题是:
定时器和定时器2同时启动。
标签不会一个接一个地显示 - 测试出现,5 秒后再见出现,你好永远不会出现!!
有没有办法重置计时器并像上面提到的 Shapemove 或 startDisplay 函数一样反复调用它们作为函数?
请帮我解决上述问题。
不要使用计时器。请改用情节提要。
在故事板中,您可以排列操作可见性,不透明度,位置等的动画。控件的任何(依赖项)属性。
请参阅本教程中的动画