0

Prism 2を使用して構築され、ブラウザーが不足しているSilverlight 4クライアントアプリケーションの「スプラッシュ」/スタートアップページを実装するための最良の方法を見つけるために、いくつかの助けを借りることができます。

私は一連のアプリケーションをサポートしており、すべてのアプリケーションが使用できるコントロールとサービスの共通ライブラリに取り組んでいます。その一環として、UnityBootstrapperクラスのサブクラスを作成してサービスを登録しています。

起動時にサーバーからのデータを使用して、いくつかのサービスを「プリロード」する必要がある状況に遭遇しました。これには少し時間がかかる可能性があるため、すべての起動手順の実行中にスプラッシュ画面を表示したいと思います。ブラウザが不足しているので、これは簡単ではないことを私は知っています。どんな助けでも大歓迎です。

また、「遅延読み込み」できないスタートアップデータに対する他のアプローチも受け入れています。

4

2 に答える 2

0

プリズムのサンプルプロジェクトを確認してください(PRISMインストールの下):

Prism \ Quickstarts \ Modularity

これにより、モジュールのロード/完了を知る方法がわかります

シェル上でスタイル付きのビジーインジケーターを使用して、ロード中であることを示すことができます。

于 2011-09-21T20:12:23.397 に答える
0

試行錯誤の末、次のようなアプローチを考え出し、それがどれだけうまく機能するかを確認しています。

UIのラッパー(コンテナー)として機能するShellUserControlをクラスライブラリに作成しました。このコントロールをRootVisualとして設定しました。このコントロールのコンテンツ内に、スプラッシュコントロール/ビューを追加し、必要なすべてのスタートアップサービス呼び出しを行います。WaitHandlesを使用して、すべての呼び出しが戻るまで待ってから、スプラッシュコントロールをアプリケーションのスタートページに置き換えます。

アプリケーションは、これがどのように機能するかを知りません。これが私の目標でした。スタートアップサービスを呼び出すために、ブートストラッパーに追加したメソッドをオーバーライドするだけです。サービス呼び出しはバックグラウンドスレッドで実行され、コードはWaitHandle.WaitAllを使用してすべての呼び出しが完了するまでブロックし、Dispatcher.BeginInvokeを使用してスプラッシュをアプリケーションのメインページに置き換えます。

これはすべてかなりうまくいくようです。

于 2011-09-23T23:09:58.713 に答える