0

タイトルが理にかなっていることを願っていますが、私の問題について説明します。UI が何らかの作業を行っているときに、Silverlight で子ウィンドウを使用して処理メッセージと回転画像を表示しています。完了イベントが呼び出されると、ウィンドウが閉じます。

問題は、子ウィンドウが開いてから 1 秒以内に閉じるときに UI がクイック タスクを実行すると、見た目が少し醜くなることです。

私ができるようにしたいのは、2 秒の処理が経過した場合にのみ子ウィンドウを開き、完了時に閉じることです。

以下の子を呼び出す xaml のセクションを追加しました。私は検索しましたが、これについて何も見つけることができず、不可能かもしれません。

void edit_Closed(object sender, EventArgs e) { EditChannelDetails edit = sender as EditChannelDetails;

        if (edit.DialogResult == true)
        {
            if (edit != null)
            {
                Channel edited = new Channel();
                edited.channelId = Int32.Parse(edit.ChannelID.Text);
                edited.name = edit.ChannelName.Text;
                edited.description = edit.ChannelDescription.Text;

                ChannelClient proxy = new ChannelClient(new BasicHttpBinding(), new EndpointAddress("http://servername"));
                proxy.UpdateChannelCompleted += new EventHandler<UpdateChannelCompletedEventArgs>(proxy_UpdateChannelCompleted);
                proxy.UpdateChannelAsync(edited);
            }
        }
        processingDialog.Show();
    }

    void proxy_UpdateChannelCompleted(object sender, UpdateChannelCompletedEventArgs e)
    {
        processingDialog.Close();

等.....

4

1 に答える 1

0
Boolean closeFlag = false;

タイマーを開始します。

DispatcherTimer timer = new DispatcherTimer() { Interval = TimeSpan.FromSeconds(2) };

timer.Tick += (tts, tte) => {
    timer.Stop();
    closeFlag = true;
};

timer.Start();

そしてチェックフラグ:

if (!closeFlag)
{
    processingDialog.Close();
}
于 2011-01-11T14:37:50.390 に答える