4

wpf ウィンドウの Loaded イベントをサブスクライブし、Loaded += loaded;コード ビハインドでいくつかのコントロールの不透明度を変更しようとしました。メソッドでは、コントロールがまだ wpf によって描画されていない
ことに気付きました。loadedしたがって、コードは効果がなく、コントロールのレンダリングはメソッドが終了した後にのみ発生します。

Rendered1)購読できる別のイベントなどはありますか?

編集: OnContentRendered イベントがあり、次のコードが機能することを発見しました:
アニメーションはおそらく好ましいですが。

protected override void OnContentRendered(EventArgs e)
{
   base.OnContentRendered(e);
   for (int i = 0; i < 100; i++)
   {
       Parentpanel.Opacity += 0.01;
       Splashscreen.Opacity -= 0.01;
       Dispatcher.Invoke(new Action(() => { }), DispatcherPriority.ContextIdle, null);
       Thread.Sleep(50);
   }
}

それ以外の場合は、おそらく、usercontrol1 の不透明度を 0.1 から 1.0 に、usercontrol2 の不透明度を 1.0 から 0.0 に変更するアニメーションを使用する必要があります。

2) そのようなアニメーションの例を知っていますか?

4

2 に答える 2