C#切换网格中的可见性 - 速度慢

时间:2011-07-21 11:04:37

标签: c# wpf xaml

我正在wpf / c#中创建交互式幻灯片控件。我想创建类似于lightbox和coverflow的东西。

我正在使用这种淡化效果:http://www.codeproject.com/Articles/57175/WPF-How-To-Animate-Visibility-Property/?display=Mobile

此代码用于测试封面流:http://d3dal3.blogspot.com/2009/04/wpf-cover-flow-tutorial-part-7.html

如果我在封面流程中没有多少封面,那么一切正常......如果超过5则需要> 3 - 4秒开始淡化动画(动画没问题)。但是,当我淡出这一层并再次淡入时,一切都工作得很好,但是当我重新启动应用程序并希望淡入这个元素时,我需要等待动画超过3,4秒。似乎WPF需要渲染(?)这个折叠元素,然后动画开始...但是如何解决这个问题呢?

这是我的Window代码:

<Window>
<Grid>
.
.
.
. other content
 <Border x:Name="panelLoading" Visibility="Collapsed" common:VisibilityAnimation.AnimationType="Fade">
        <Grid>
            <Border Background="Black" Opacity="0.6">

            </Border>
            <Grid>

                <flow:FlowControl x:Name="flow" Margin="0" Width="1000" Height="800"></flow:FlowControl>
            </Grid>
        </Grid>
    </Border>
</Grid></Window>

1 个答案:

答案 0 :(得分:0)

如果我理解你的描述,我的猜测是你在窗口启动时将所有图像加载到内存中。

您可以在主线程中加载第一张图片,然后使用BackgroundWorker加载即将推出的图片。