gpt4 book ai didi

c# - 如何为 UI 中的计数器值设置动画以增加 C# WPF 中的值?

转载 作者:太空宇宙 更新时间:2023-11-03 23:48:11 25 4
gpt4 key购买 nike

我想在 WPF 中开发一个应用程序,在 Windows Phone 8.1 中也是如此。我想将变量的值从 100 增加到 200,从 200 增加到 300,然后继续。这是比赛的比分。现在我想在 UI 中对此进行动画处理。我写了一个这样的示例代码。

<Button Click="Button_Click" >Start</Button>
<TextBlock x:Name="tbvalue" />

因此,当单击该按钮时,该值将从 100 到 200,但这应该在 UI 中显示为 101,102,103 ...,并在 UI 中以动画形式显示增量值。

我把后面的代码写成这样了

private void Button_Click(object sender, RoutedEventArgs e)
{
while (count < upperLimit)
{
count += 1;
this.Dispatcher.BeginInvoke(new Action<object>(perform), sender);
System.Threading.Thread.Sleep(100);
}

i++;
upperLimit = i * 100;
}

在那里面

private void perform(object obj)
{
tbvalue.Text = count.ToString();
}

但是使用这个我没有实现计数器动画。关于如何实现此功能的任何想法或建议。

最佳答案

这就是我所做的并且工作正常。我制作了一个演示 wpf 应用程序

 public MainWindow()
{

InitializeComponent();
Counter_Timer.Interval = new TimeSpan(0, 0, 1);
Counter_Timer.Tick += dispatcherTimer_Tick;
counter.Content = 100;
}
private readonly DispatcherTimer Counter_Timer = new DispatcherTimer();
private void Button_Click(object sender, RoutedEventArgs e)
{
Counter_Timer.Start();
}

public void dispatcherTimer_Tick(object sender, object e)
{
counter.Content = Convert.ToInt16(counter.Content) + 1;
if (Convert.ToInt16(counter.Content) >= 200)
{
Counter_Timer.Stop();
}
}

Xaml 文件:

    <Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition />
</Grid.RowDefinitions>
<Button Click="Button_Click" Grid.Row="0" Name="Counter" ></Button>
<Label Name="counter" Grid.Row="1"></Label>
</Grid>

关于c# - 如何为 UI 中的计数器值设置动画以增加 C# WPF 中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26885555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com