我正在为Windows Phone 8应用程序(silverlight)开发,我正在尝试在页面上创建一个用于注册的按钮,它在点击后对其内容进行倒计时,用于获取SMS验证代码并防止恶意要求。 我希望它是这样的:
原始按钮:
[发送给我验证码]
点击后:
[29s剩余...]< ---它的内容倒计时。
倒数完成后:
[再次发送给我]
而且,我希望它是异步的,因为我必须在那之后制作HTTP请求。
这是我写的代码,但它给了我一个CS0120错误,在创建了一个类的实例后,它编译,但不起作用并抛出异常。
public partial class Register : PhoneApplicationPage
{
private Thread newThread;
public Register()
{
InitializeComponent();
//Register iregister = new Register();
//newThread = new Thread(iregister.SetText);
//I've tried these but no luck..
newThread = new Thread(Register.SetText);
}
public static void SetText()
{
int i = 30;
// Register iregister = new Register();
while (i > 0)
{
btn_sendVeri.Dispatcher.BeginInvoke(delegate() { btn_sendVeri.Content= i + "seconds remaining"; }); //**CS0120**
i--;
Thread.Sleep(1000);
}
}
public void Button_Click(object sender, RoutedEventArgs e)
{
//btn_sendVeri.IsHitTestVisible = false;
newThread.Start();
//Put httprequests here
}
btn_sendVeri是XAML中定义的按钮。
<Button x:Name="btn_sendVeri" Content="Send Verification Code" Width="245" Height="85" Click="Button_Click" Background="#33cc66"/>
如何修复我的代码? 谢谢你的帮助。:)