在快速事件结束之前触发UI功能

时间:2015-11-11 20:41:46

标签: c# multithreading user-interface silverlight events

我有一个停靠在Silverlight应用程序中的Web浏览器框架,有时可以弹出全窗口XAML / Silverlight UI元素。我或多或少已经解决的旧问题是,网页框架的内容似乎与Silverlight内容不相称,总是希望呈现在最顶层。这不是一个真正的问题,因为每当出现应用程序模糊弹出窗口时都会触发一个事件,但现在出现了新问题。

启动弹出式窗口的代码如下所示:

private void Shell_ModuleShown(object sender, ModuleShownEventArgs e)
{
    if (browserFrame.Visibility == Visibility.Visible)
    {
        browserFrame.Visibility = Visibility.Collapsed;
        return;
    }
}

我处理事件的代码如下所示:

Thread.Sleep

新问题在于,即使我在开始加载和显示新模块之前调用该事件,即使所有事件都在改变Web框架的可见性,但是加载时间很短。由于模块的外观是动画的,它看起来更糟糕,因为网页框架似乎在等待模块在消失之前完成动画。

问题

我可以用某种线程方法来解决这个问题吗?我真的不想使用{{1}},但它是我所知道的唯一一个可以解决这个问题但我无法做出大规模改变的事情。如果有办法让这个网络框架与Z索引或类似的东西一起玩,那就更好了。

我使用的是Visual Studio 2013,我的项目的.NET Framework版本是4.0。

0 个答案:

没有答案