WPF - zmiana kursora myszki po wywołaniu nowego wątku

WPF - zmiana kursora myszki po wywołaniu nowego wątku
XF
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 9 lat
  • Postów:39
0

Witam,
chciałbym tworzyć nowe okno w oddzielnym wątku, a podczas tworzenia tego okna zmieniać kursor myszki.
Poniższy kod poprawnie tworzy nowe okno, ale nie jest widoczna zmiana kursora.

Kopiuj
 
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            this.Cursor = Cursors.Wait;            
            
            Thread newWindowThread = new Thread(new ThreadStart(() =>
            {                
                Window1 tempWindow = new Window1();
                Thread.Sleep(2000);
                tempWindow.Show();
                System.Windows.Threading.Dispatcher.Run();                
            }));

            newWindowThread.SetApartmentState(ApartmentState.STA);
            newWindowThread.IsBackground = true;
            newWindowThread.Start();

            this.Cursor = Cursors.Arrow;
        }
    }
SO
  • Rejestracja:ponad 10 lat
  • Ostatnio:około rok
0

Zmiana nie jest widoczna, bo operacje pomiędzy ustawieniem Cursor.Wait, a Cursor.Arrow zajmują tak mało czasu, że nawet tego nie zauważasz.

A tak poza tym to używanie gołego Thread to słaby pomysł.

XF
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 9 lat
  • Postów:39
0

To są moje początki z wątkami, przykład tworzenia okna w nowym wątku znalazłem gdzieś w sieci.
A jak poprawić ten kod, aby zmiana kursora była widoczna?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.