Die Umsetzung einer pause in WPF

Hier haben Sie eine einfache WPF-Programm:

<!-- Updater.xaml -->
<Window x:Class="Update.Updater"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525"
        DataContext="{Binding RelativeSource={RelativeSource Self}}">
    <Grid>
        <StackPanel>
            <Button Click="Button_Click" Height="50"></Button>
            <Label Content="{Binding Label1Text}" Height="50"></Label>
            <Label Content="{Binding Label2Text}" Height="50"></Label>
        </StackPanel>
    </Grid>
</Window>

//Updater.xaml.cs
using System.Threading;
using System.Windows;

namespace Update
{
    public partial class Updater : Window
    {
        public Updater()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Label1Text = "It is coming...";
            Thread.Sleep(3000);
            Label2Text = "It is here!";
        }

        public string Label1Text
        {
            get { return (string)GetValue(CategoryProperty); }
            set { SetValue(CategoryProperty, value); }
        }

        static readonly DependencyProperty CategoryProperty = DependencyProperty.Register("Label1Text", typeof(string), typeof(Updater));

        public string Label2Text
        {
            get { return (string)GetValue(Label2TextProperty); }
            set { SetValue(Label2TextProperty, value); }
        }

        static readonly DependencyProperty Label2TextProperty = DependencyProperty.Register("Label2Text", typeof(string), typeof(Updater));
    }
}

Die Absicht ist, dass, wenn Sie auf die Schaltfläche klicken, wird das erste label angezeigt It is coming.... Dann das Programm Schlafmöglichkeiten für 3 Sekunden, und schließlich der zweite Etikett zeigt It is here!. Allerdings, die naive Implementierung unten funktioniert nicht. Wenn Sie starten Sie es und klicken Sie auf die Schaltfläche passiert Folgendes: Das Programm wartet 3 Sekunden, und dann die beiden label-Texte gleichzeitig angezeigt werden. Wissen Sie, wie korrigieren Sie das Programm so, dass es funktioniert wie vorgesehen?

InformationsquelleAutor user181813 | 2012-04-30

Schreibe einen Kommentar