开发者

Silverlight & C# - Open a childwindow only if a time frame passes

开发者 https://www.devze.com 2023-02-03 10:12 出处:网络
Hopefully the title makes sense but I will discribe my issue. I am using a childwindow in Silverlight to display a Processing message and rotating image when the UI is doing some work. Once a Complete

Hopefully the title makes sense but I will discribe my issue. I am using a childwindow in Silverlight to display a Processing message and rotating image when the UI is doing some work. Once a Completed Event is called, the window then closes.

Problem is that it does look a little ugly when the UI performs a quick task as the child window opens and then closes in under 1 second.

What I want to be able to do is have the child window open only if 2 seconds of processing has passed and then close on complete.

I have added a section of my xaml where I am calling the child below. I have searched but cannot find anything on this and it might not be possible.

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, UpdateChannelCompletedEventArg开发者_Go百科s e)
    {
        processingDialog.Close();

Etc.....


Boolean closeFlag = false;

Start a timer:

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

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

timer.Start();

And check flag:

if (!closeFlag)
{
    processingDialog.Close();
}
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号