Cześć.
Piszę prostą grę w WPFie, która polega na odnajdowaniu par ( każdy zapewne wie o co chodzi, coś na wzór tego: ).
Została mi do zrobienia ostatnia rzecz, a mianowicie gdy odkrywam drugi element to chciałbym, żeby oba odsłonięte elementy wyświetlały się przez 2-3 sekundy. Teraz dzieje się to tak szybko, że nie widać obrazka.
Próbowałem użyć Thread.Sleep(), lecz nie działa to poprawnie ( cały wątek zostaje wstrzymany ). Czytałem też o Task.Delay(), ale nie za bardzo wiem jak tego użyć i czy akurat tego powinienem użyć
Dziękuję za odpowiedź.
private bool IsPair(Button[] pair)
{
return (pair[0].Name == pair[1].Name) ? true : false;
}
private void ShowImage(Button button)
{
string buttonName = button.Name;
string path = $@"Images/{buttonName}.png";
Image image = new Image();
image.Source = new BitmapImage(new Uri(path, UriKind.Relative));
button.Content = image;
}
// wciśnięcie elementu
private void button_Click(object sender, RoutedEventArgs e)
{
Button button = sender as Button;
ShowImage(button); // metoda, która ustawia Content przycisku ( elementu ) na obrazek
button.IsEnabled = false;
if (pair[0] == null)
pair[0] = button;
else
{
pair[1] = button;
if (!IsPair(pair)) // jeżeli 2 wybrane obrazki nie są takie same
{
pair[0].IsEnabled = true; // można będzie znów je zaznaczyć
pair[1].IsEnabled = true;
pair[0].Content = ""; // ustawienie Content na pusty ciąg znaków, tu się dzieje za szybko, bo obrazek nie zdąży się wyświetlić i użytkownik nie wie co się kryję pod danym elementem
pair[1].Content = "";
}
Po wybraniu drugiego elementu pary oba bardzo szybko znikają, przez co nie widać co było na drugim elemencie. Napisy na kafelkach są pomocnicze, muszę widzieć co gdzie jest :P