更改 WPF 中的按钮内容
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/15279349/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Change button content in WPF
提问by user1638121
I have:
我有:
private void button1_MouseEnter(object sender, EventArgs e)
{
for (int i = 0; i > 2; i++)
{
button1.Content = Convert.ToString(i);
System.Threading.Thread.Sleep(1000);
}
tekst.Text = "Mouse Enter";
}
When I enter on ButtonI see only Mouse Enter, but Contenton Buttondon't change. Why? What I can do wrong?
当我进入上Button我只看到Mouse Enter,但Content在Button不改变。为什么?我能做错什么?
采纳答案by kmatyaszek
Your for loop never execute because you have wrong condition, change it to following code:
您的 for 循环永远不会执行,因为您的条件错误,请将其更改为以下代码:
for (int i = 0; i < 2; i++)
for (int i = 0; i < 2; i++)
Also you should use BackgroundWorker(msdn) to update your GUI dynamicly.
您还应该使用BackgroundWorker( msdn) 动态更新您的 GUI。
private void button1_MouseEnter(object sender, MouseEventArgs e)
{
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += delegate
{
for (int i = 0; i < 2; i++)
{
this.Dispatcher.Invoke((Action)(() => { btn.Content = Convert.ToString(i); }));
System.Threading.Thread.Sleep(1000);
}
};
worker.RunWorkerCompleted += delegate { tekst.Text = "Mouse Enter"; };
worker.RunWorkerAsync();
}
回答by yo chauhan
Hi is your for loop correct? It should be i<2 instead of i>2
嗨,你的 for 循环正确吗?它应该是 i<2 而不是 i>2
for (int i = 0; i < 2; i++)
{

