Я опубликую свой исходный код, который у меня есть на данный момент, и объясню мою проблему после этого.
это окно, где я хочу, чтобы переход произошел
<Window x:Class="MyApp.MainView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MyApp" Height="600" Width="800">
<StackPanel>
<Button Content="View1" Command="{Binding View1Command}"/>
<Button COntent="View2" Command="{Binding View2Command}"/>
<ContentControl Content="{Binding MyContent}"/>
</StackPanel>
Это связанная модель представления
public class MainViewModel
{
public RelayCommand View1Command{ get; private set;}
public RelayCommand View2Command{ get; private set;}
//INotifyPropertyChanged is implemented of course
public ViewModelBase MyContent { get; set;}
public MainViewModel()
{
View1Command = new RelayCommand(() => { MyContent = new ViewModel1();});
View2Command = new RelayCommand(() => { MyContent = new ViewModel2();});
}
}
В app.xaml я использовал шаблон данных, чтобы связать ViewModel1 с View1 и ViewModel2 с View2. Это все работает, как ожидалось. При нажатии на кнопки вид меняется, привязка данных работает и все в порядке.
Что мне нравится делать сейчас, так это использовать анимацию при изменении вида.
что мне нужно сделать, чтобы оживить переход между двумя представлениями, скажем, с постепенной анимацией для нового представления. старый вид исчезает, а новый исчезает в течение одной секунды.
надеюсь, вы сможете мне помочь.
С наилучшими пожеланиями
Паскаль
p.s. если мой подход с шаблоном данных не имеет смысла, и анимация невозможна с этим подходом, я открыт для других передовых методов, чтобы перейти от представления onw к другому. решение, которое я использую, взято из демонстрационного приложения wpf Карлом Шиффлетом, но я не знаю, является ли это правильным решением для того, что я пытаюсь сделать.