2011-07-21 9 views
0

wpf/c#で対話型スライドショーコントロールを作成しています。ライトボックスやカバーフローに似たものを作りたいと思っています。 http://www.codeproject.com/Articles/57175/WPF-How-To-Animate-Visibility-Property/?display=MobileC#グリッドで表示を切り替える - 低速

とテストカバーフローのために、このコード:

私はこのフェージング効果使用しています、私はカバーフローではない多くのカバーをすればhttp://d3dal3.blogspot.com/2009/04/wpf-cover-flow-tutorial-part-7.html

すべてがうまく動作し...より多く存在する場合5はフェーディングアニメーションを開始するのに3〜4秒以上かかります(アニメーションはOKです)。しかし、このレイヤーをフェードアウトして、すべてのフェードが完全に機能しているとき、アプリケーションを再起動してこの要素をフェードインしたいとき、アニメーションが3,4秒以上待つ必要があります。 WPFはこの折りたたまれた要素をレンダリングしてアニメーションを開始する必要があるようですが、どうすればこの問題を解決できますか?ここで

は、ウィンドウのための私のコードです:

<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> 

答えて

0

私はあなたの説明を理解していた場合、私の推測では、ウィンドウが起動時に使用すると、メモリにすべての画像をロードしていることです。

メインスレッドで最初のイメージをロードし、BackgroundWorkerを使用して次のイメージをロードすることができます。

+0

http://d3dal3.blogspot.com/2009/04/wpf-cover-flow-tutorial-part-7.html - 私が使用したこのコードでは、仮想化があります "私たちはしていますある時点では、カレント・カバーの両面に(ポジション・インデックスで)いくつかのカバーを残しておきます。すべてのカバーを記憶していなければ、カバーを再構築するのに十分な情報、すなわち画像ファイルのパスと位置を保持しなければなりません。 – radzio

関連する問題