【发布时间】:2016-01-04 13:02:56
【问题描述】:
我有按钮点击事件
private void AnswerPressAction(object sender, RoutedEventArgs e)
{
Button button = (Button)sender;
Button validButton = null;
string buttonName = button.Name;
button.Background = new SolidColorBrush(Colors.Yellow);
System.Threading.Thread.Sleep(1000);
int presedAnswer = 0;
switch (buttonName)
{
case "buttonAnswer1":
presedAnswer = 1;
break;
case "buttonAnswer2":
presedAnswer = 2;
break;
case "buttonAnswer3":
presedAnswer = 3;
break;
case "buttonAnswer4":
presedAnswer = 4;
break;
}
switch (_valid_answer)
{
case 1:
validButton = buttonAnswer1;
break;
case 2:
validButton = buttonAnswer2;
break;
case 3:
validButton = buttonAnswer3;
break;
case 4:
validButton = buttonAnswer4;
break;
}
if (presedAnswer != 0 && presedAnswer == _valid_answer)
{
button.Background = new SolidColorBrush(Colors.Green);
System.Threading.Thread.Sleep(1000);
CreateQuestion(1);
}
else
{
button.Background = new SolidColorBrush(Colors.Red);
validButton.Background = new SolidColorBrush(Colors.Green);
System.Threading.Thread.Sleep(1000);
_gameLevel = 0;
}
}
我将在此函数中更改按钮颜色,但是,按钮被按下并且我无法更改颜色(按钮处于活动状态/按下状态)。
当按钮不活动时,如何喜欢 javascript e.preventDefault(),或者在按下按钮之前运行此事件?
【问题讨论】:
-
或者请告诉我在这个事件之后如何运行我的方法
-
你为什么打
Thread.Sleep(1000);电话? -
我想改变颜色,停留 1 秒,然后再改变颜色。这点赞游戏Who Wants to Be a Millionaire?
-
您正在休眠 UI 线程,因此它无法更新颜色。您需要让 UI 线程在颜色发生变化之前完成该方法。
-
尝试使用此代码设置
presedAnswer:int presedAnswer = int.Parse(buttonName.Substring("buttonAnswer".Length));
标签: c# windows-phone-8 windows-phone