wpf 창의로드 된 이벤트 : Loaded += loaded;
을 구독하고 코드의 일부 컨트롤의 불투명도를 변경하려고했습니다.
loaded
메서드에서 wpf로 컨트롤이 아직 그려지지 않았습니다. 따라서 코드는 아무런 효과가 없습니다. 컨트롤의 렌더링은 메서드가 종료 된 후에 만 발생합니다.로드 된 이벤트에서 렌더링이 완료되지 않았습니다.
1) 다른 이벤트가 있습니까? Rendered
에 가입 할 수 있습니까?
편집 : 방금 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);
}
}
그렇지 아마 0.1 내지 1.0 및 UserControl2를 1.0에서 0.0으로 UserControl1에 불투명도를 변경하는 애니메이션을 사용한다.
2) 그러한 애니메이션의 예를 알고 있습니까?
컨트롤 정의 위치는 어디입니까? 예를 들어,'ControlTemplate'에 정의되어 있다면'Loaded' 이벤트가 발생했을 때 준비가되지 않을 것입니다. 이 경우 [FrameworkElement.OnApplyTemplate 메서드] (http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.onapplytemplate.aspx)를 처리해야합니다. – Sheridan