Возможно, вы сможете ответить на этот вопрос, чтобы помочь вам WPF Fade Animation .
Они делают FadeIn / FadeOut по видимости. Возможно, можно изменить триггер с ...
<Trigger Property="Visibility" Value="Visible">
к ...
<Trigger Property="Content" Value="{x:Null}">
Так что моя идея заключается в том, что при переходе между ViewModels вы будете делать что-то вроде
public void SwapViewModels()
{
// SelectedMyViewModel contains a MyFirstViewModel
// Setting to null fires the Animation to fadeout
SelectedMyViewModel = null;
// Setting the Value to anything but null, should fire the fadein animation
SelectedMyViewModel = new MySecondViewModel();
}
Я не тестировал код, но, надеюсь, он даст вам отправную точку.