2017-02-14 8 views
0

いいLoadingIcon(https://elegantcode.com/2009/08/21/a-simple-wpf-loading-animation/)でプロジェクトをダウンロードしました。 私はそれを私のメインプロジェクトに参照しましたが、これを自分のアプリケーションにどのように実装できるかはわかりません。既存のSplashScreenで外部LoadingIconプロジェクトを使用するにはどうすればよいですか? (WPF)

xmlns:control="clr-namespace:LoadingControl.Control"をメインのSplash.xamlに入力し、<control:LoadingAnimation HorizontalAlignment="Center" VerticalAlignment="Center"/> でコールしようとしましたが、それは私のためには機能しませんでした。 また、LoadingAnimation.xamlのXMLコード全体をコピーしようとしましたが、それもうまくいきませんでした。

+0

問題を再現し、それが働いていない方法を指定するためのコードを投稿してください。 – FINDarkside

答えて

0

スプラッシュ画面のアイデアは、アプリケーションの初期化中にアニメーションを表示することです。

ただし、これはUIのレンダリングを担当するUIスレッドで実行されているではなく、である場合にのみ機能します。もしそうなら、UIを更新する時間がなくなります。

新しい/別のスレッド(Task.Factory.StartNew())上のあなたの初期化コードを実行してみ

あなたが呼び出す必要がありますので、WPF物事の多くは、UIスレッド上で実行する必要があることに留意してくださいこの場合、Dispatcher.Invoke()。

0

使用メインウィンドウのコンストラクタでこのような何か:

public MainWindow() 
{ 
    InitializeComponent(); 

    var scheduler = TaskScheduler.FromCurrentSynchronizationContext(); 
    Task.Factory.StartNew(delegate { }).ContinueWith(async delegate 
    { 
     Window win = new Window() { 
      WindowStyle = WindowStyle.None, Topmost = true, ResizeMode = ResizeMode.NoResize, ShowInTaskbar = false, SizeToContent= SizeToContent.WidthAndHeight, 
      WindowStartupLocation = WindowStartupLocation.CenterOwner, Owner = this 
     }; 

     win.Content = new LoadingAnimation(); 

     win.Show(); 
     await Task.Delay(TimeSpan.FromSeconds(4)); 
     win.Close(); 
    }, scheduler); 

} 
関連する問題