У меня есть этот код
Color[] colours = new Color[5]{Color.Red, Color.Blue, Color.Green, Color.Yellow, Color.Black};
public int randGen(int lower, int upper)
{
Random random = new Random();
return random.Next(lower, upper);
}
public PlayGame()
{
InitializeComponent();
}
protected override void OnAppearing()
{
base.OnAppearing();
changeColour();
}
public void changeColour()
{
int milliseconds = randGen(1000, 5000);
int count = 0;
Device.StartTimer(TimeSpan.FromMilliseconds(milliseconds), () =>
{
var layout = new StackLayout { Padding = new Thickness(5, 10) };
var label = new Label { Text = "Time: ", TextColor = Color.Green, FontSize = 25 };
layout.Children.Add(label);
label.Text += milliseconds.ToString();
this.Content = layout;
if (count < 4)
{
BackgroundColor = colours[count];
count++;
milliseconds = randGen(1000, 5000);
return true;
}
else
{
BackgroundColor = Color.Black;
return false;
}
}
);
}
Который имеет массив цветов. Идея состоит в том, что каждые 1-5 секунд (которые должны быть случайными каждый раз) цвет фона должен меняться, а в тексте должно быть указано, как долго экран был включен.
Однако в настоящее время отображается время в тексте не отражается время, отображаемое на каждом экране, и у меня есть некоторые предположения, что миллисекунды в:
Device.StartTimer(TimeSpan.FromMilliseconds(milliseconds)
не меняются вообще. Есть идеи?