我需要在一次活动中多次更改背景颜色,目前我正在做这个
LayoutRoot.Background = new SolidColorBrush( Colors.Cyan );
它改变了颜色。 但我希望它像这样
LayoutRoot.Background = new SolidColorBrush( Colors.Cyan );
System.Threading.Thread.Sleep(2000);
LayoutRoot.Background = new SolidColorBrush( Colors.White );
但问题是第二段代码直接变为白色,因为执行完成时发生了变化,我希望在代码执行时完成,有什么想法吗?
答案 0 :(得分:0)
int state;
// Constructor
public MainPage()
{
state = 0;
// create our dispatch timer
DispatcherTimer timer;
timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromMilliseconds(2000);
timer.Tick += OnTimerTick;
timer.Start();
// timer.Stop(); // call this to stop
}
// if the timer is on, cycle the color
private void OnTimerTick(object sender, EventArgs e)
{
try
{
if(state == 0){
LayoutRoot.Background = new SolidColorBrush( Colors.Cyan );
state = 1;
}
else
{
LayoutRoot.Background = new SolidColorBrush( Colors.White );
state = 0;
}
}
catch (Exception ex)
{
string error_message = ex.Message;
}
}