2012-02-08 5 views
21

Я хочу применять анимацию fade каждый раз, когда отображается мое окно. Как это сделать из xaml? Это окно можно скрыть, а затем снова показать, поэтому я не могу использовать событие Loaded.Отображаемое окно в WPF?

+3

IsVisibleChanged события? – jjrdk

+0

Посмотрите на этот вопрос, может быть, это поможет: http://stackoverflow.com/questions/867656/fading-out-a-wpf-window-on-close – Seekeer

ответ

37

Вы можете использовать событие ContentRendered или переопределить OnContentRendered виртуального метода, как это:

bool _shown; 

    protected override void OnContentRendered(EventArgs e) 
    { 
     base.OnContentRendered(e); 

     if (_shown) 
      return; 

     _shown = true; 

     // Your code here. 
    } 
+0

Работает для меня :) Спасибо! – dba

+1

Действительно ли нужно использовать переменную _shown? Может ли быть вызвано два или более раза? –

Смежные вопросы