我将发布我目前拥有的源代码,然后解释我的问题。
这是我希望过渡发生的窗口
<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 关联。这一切都按预期工作。单击按钮时,视图会发生变化,数据绑定工作并且一切正常。
我现在喜欢做的是在视图更改时使用动画。
我必须做些什么来为两个视图之间的过渡设置动画,让我们说新视图的动画淡入淡出。旧视图消失,新视图在一秒钟内淡入。
希望您能够帮助我。
此致
帕斯卡
ps 如果我使用数据模板的方法没有意义并且动画无法使用该方法,我愿意接受其他最佳实践从 onw 视图更改为另一个视图。我使用的解决方案取自 karl shifflet 的 wpf 演示应用程序,但我不知道这是否是我尝试做的事情的正确解决方案。