刚接触WPF在夫窗口里点击打开一个新的窗口,刚开始学习不会,所以找了一些资料,谢了,.Net / WPF(113404016)群里的朋友衡阳-Aimeast提供的例子也学习了一下。
代码
Windows.xaml.cs
代码
publicpartialclassWindow1 : NavigationWindow
{publicWindow1()
{
InitializeComponent();
}privatevoidNavigationWindow_Navigating(objectsender, NavigatingCancelEventArgs e)
{if(Content!=null&&!_allowDirectNavigation)
{
e.Cancel=true;
_navArgs=e;this.IsHitTestVisible=false;
DoubleAnimation da=newDoubleAnimation(0.3d,newDuration(TimeSpan.FromMilliseconds(300)));
da.Completed+=FadeOutCompleted;this.BeginAnimation(OpacityProperty, da);
}
_allowDirectNavigation=false;
}privatevoidFadeOutCompleted(objectsender, EventArgs e)
{
(senderasAnimationClock).Completed-=FadeOutCompleted;this.IsHitTestVisible=true;
_allowDirectNavigation=true;switch(_navArgs.NavigationMode)
{caseNavigationMode.New:if(_navArgs.Uri==null)
{
NavigationService.Navigate(_navArgs.Content);
}else{
NavigationService.Navigate(_navArgs.Uri);
}break;caseNavigationMode.Back:
NavigationService.GoBack();break;caseNavigationMode.Forward:
NavigationService.GoForward();break;caseNavigationMode.Refresh:
NavigationService.Refresh();break;
}
Dispatcher.BeginInvoke(DispatcherPriority.Loaded,
(ThreadStart)delegate()
{
DoubleAnimation da=newDoubleAnimation(1.0d,newDuration(TimeSpan.FromMilliseconds(200)));this.BeginAnimation(OpacityProperty, da);
});
}privatebool_allowDirectNavigation=false;privateNavigatingCancelEventArgs _navArgs=null;
}
然后我们就开始做首页
index.xaml
代码
How To演示如何在多Page间的切换同时,在Page切换间加入Fade过渡May it helps.点击打开新页面>>
放了三张图片分别点开不同的页面然运用了
NavigationWindow 类
备注
NavigationWindow 派生自
内容可以是任何 .NET Framework 对象或 HTML 文件。 但是,一般而言,
通过用所需内容的 URI 来设置 此外,也可以使用
通过 URI 导航到内容时,NavigationWindow 将返回一个包含该内容的对象。
.cs
代码
privatevoidbutton1_Click(objectsender, MouseButtonEventArgs e)
{
NavigationService.Navigate(newUri("Page1.xaml", UriKind.Relative));
}privatevoidbutton2_Click(objectsender, MouseButtonEventArgs e)
{
NavigationService.Navigate(newUri("Page2.xaml", UriKind.Relative));
}privatevoidbutton3_Click(objectsender, MouseButtonEventArgs e)
{
NavigationService.Navigate(newUri("Page3.xaml", UriKind.Relative));
}
2、建立第一个PAGE1页
page1.xaml
代码
Page 1页面
Page1.xaml.cs后台,我们点击完后显示回到首页
代码
//Page1.xaml 的交互逻辑///NavigationService 封装了在浏览器样式的导航上下文中下载内容的能力///通过 URI 导航到内容时,NavigationService 将返回一个包含该内容的对象。///publicpartialclassPage1 : Page
{publicPage1()
{
InitializeComponent();
}privatevoidPage_MouseLeftButtonDown(objectsender, MouseButtonEventArgs e)
{
NavigationService.Navigate(newUri("Index.xaml", UriKind.Relative));
}
}
后面的首页代码和Page1页面效果一样,只不过图片不同,这样可以轻松的实例WPF多窗口切换效果