私はこれを達成したいと思います:
- 回転するローダーと静的テキストである新しいウィンドウを作成し、それを表示します。
- UIスレッドでいくつかの計算を実行します(そこで実行する必要があります)
- ローダーウィンドウを閉じます
現在、ローダーウィンドウで.Show()を呼び出すと、まったく読み込まれず、空白のウィンドウとしてハングアウトします(UIスレッドがブロックされているため、必要ありません)
計算が完了すると同時にローダーウィンドウがその内容を表示できるようにするにはどうすればよいですか?
private void CopyToClipboard(object sender, RoutedEventArgs e)
{
var selected = mDataGrid.SelectedItem;
var selectedIndex = mDataGrid.SelectedIndex;
var progressWindow = mProgressDialog.Create(this,"Copying data to clipboard");
progressWindow.Show();
try
{
mDataGrid.ClipboardCopyMode = DataGridClipboardCopyMode.IncludeHeader;
mDataGrid.SelectionMode = DataGridSelectionMode.Extended;
mDataGrid.SelectAllCells(); // SLOW !!!!
ApplicationCommands.Copy.Execute(null, mDataGrid); //SLOW !!!!
}
catch (Exception ex)
{
mLog.Error("Copying to clipboard", ex);
MessageBox.Show("Error while copying to clipboard");
}
finally
{
mDataGrid.SelectionMode = DataGridSelectionMode.Single;
mDataGrid.UnselectAllCells();
this.Select(selectedIndex, selected);
progressWindow.Close();
}
}