1

ボタンをクリックするとExcelシートからデータを取得し、結果を表示するデータグリッドが存在する別のウィンドウをロードするwpfアプリケーションを作成しています。

2 番目のウィンドウをロードするのに 10 ~ 12 秒かかり、その間にアプリケーションがフリーズします。今私が欲しいのは、回転する小さな円形のリボン型のボタンを表示し、「お待ちください」というテキストが表示されるようにすることです。これは最初のウィンドウの中央に表示され、最初のウィンドウの他のコンテンツは暗くなります。

2 番目のウィンドウが読み込まれると、最初のウィンドウが閉じます。これを行う方法を教えてください。

4

1 に答える 1

1

問題は解決しました。どうもありがとうございました。以下は私が使用したコードです。

    namespace ScoreX
    {

        public partial class Score : Window
        {
          Applications ap;
          public Score()
          {
            InitializeComponent();
           }

       private void Window_Loaded_1(object sender, RoutedEventArgs e)
         {
        //cb is Circular progress bar
          cbProgress.Visibility = Visibility.Hidden;
         //Some codes
          }

        private void btnProceed_Click(object sender, RoutedEventArgs e)
          {
       //Some lines of Codes
        Thread t1 = new Thread(new ThreadStart(CalculateData));
         t1.SetApartmentState(ApartmentState.STA);
         t1.Start();
         cbProgress.Visibility = Visibility.Visible;

          }

       private void CalculateData()
        {
       //Some codes

        Dispatcher.Invoke(DispatcherPriority.Normal, (Action)delegate()
        {

            ap = new Applications();
            this.Close();
            ap.ShowDialog();

        }
        );

    }
于 2013-04-20T05:35:15.217 に答える