在 wpf C# 中在运行时更改标签文本

Change label text at runtime in wpf C#

我有一个名为 lblMsg 的标签。

我想动态更改它的内容运行时。

以下是我的代码示例,并非实际代码。我的 for 循环包含很多代码,每个循环大约需要 8 到 9 秒。所以它应该在 UI.

上可见

例如

for(int i=0;i<=length;i++)
{
    lblMsg.Content="Test"+i;
}

但它不起作用。有人可以帮我吗?

如果您只想显示带有递增数字的标签,您可以创建一个任务,然后使用延迟 (Thread.Sleep()) 给 UI 时间来刷新标签。

因为您不能在单独的线程中更改 UI 元素,所以您必须使用 UI 调度程序更新 UI。

示例代码

var length = 1000;

Task.Run(() =>
{
    for (int i = 0; i <= length; i++)
    {
        Application.Current.Dispatcher.BeginInvoke(new Action(() => { 
            lblMsg.Content = "Test" + i;
        }), DispatcherPriority.Render);
        Thread.Sleep(100);
    }
});