Silverlight& C# - 仅在时间范围过去时打开子窗口

时间:2011-01-11 14:07:28

标签: silverlight childwindow

希望标题有意义,但我会描述我的问题。我在Silverlight中使用一个子窗口来显示处理消息并在UI执行某些工作时旋转图像。调用完成事件后,窗口将关闭。

问题是,当子窗口打开然后在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();

等.....

1 个答案:

答案 0 :(得分: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();
}