WPF窗口跳转及window和page区别

分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net

刚接触WPF,有两个概念不是很懂,现理解如下:

1:window和page谁包含谁的问题

一新建WPF应用程序,发现默认启动界面是一个window,将默认启动改为page,没有错误。但是如果在page中执行如下程序报错:

this.content = new Window1();

错误信息是:window是在属性结构的根目录。那么,我们可以理解为,window包含page,而不是反之。

2:登录界面(窗口跳转)

既然WPF的默认启动界面是一个窗口window,那么我也默认理解整个应用程序最上层最好是一个window(虽然全部是page也不会出错)。这大概是习惯使然,因为老的winform程序嘛,大家都是window。

那么,涉及到登录,就有个窗口之间的跳转,貌似没有好的方法,只能在登录的window中:

view plaincopy to clipboardprint?
WinMain wm = new WinMain();  
wm.Show();  
wm.WindowState = WindowState.Maximized;  
this.Close(); 
WinMain wm = new WinMain();
wm.Show();
wm.WindowState = WindowState.Maximized;
this.Close();

3:页面跳转(page跳转)

前台转:

view plaincopy to clipboardprint?
<TextBlock FontSize="24" TextWrapping="Wrap" Margin="0,0,0,-19.998"> 
            <Hyperlink x:Name="LnkPre" NavigateUri="Page2.xaml" Foreground="Black"> 
                Enter Page2  
             </Hyperlink> 
</TextBlock> 
<TextBlock FontSize="24" TextWrapping="Wrap" Margin="0,0,0,-19.998">
            <Hyperlink x:Name="LnkPre" NavigateUri="Page2.xaml" Foreground="Black">
                Enter Page2
             </Hyperlink>
</TextBlock>

后台转:

view plaincopy to clipboardprint?
NavigationService.GetNavigationService(this).Navigate(new Uri("Page2.xaml", UriKind.Relative));  
NavigationService.GetNavigationService(this).GoForward();向后转  
NavigationService.GetNavigationService(this).GoBack();  向前转 
 NavigationService.GetNavigationService(this).Navigate(new Uri("Page2.xaml", UriKind.Relative));
 NavigationService.GetNavigationService(this).GoForward();向后转
 NavigationService.GetNavigationService(this).GoBack();  向前转

在后台跳转中,还有一个更简单的用法是:

this.content = new Page2();

4:windows跳转到page

view plaincopy to clipboardprint?
NavigationWindow window = new NavigationWindow();  
  window.Source = new Uri("Page1.xaml", UriKind.Relative);  
  window.Show();

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net

原文地址:https://www.cnblogs.com/sjwudhwhhw/p/10509885.html

时间: 2024-10-07 23:47:29

WPF窗口跳转及window和page区别的相关文章

Wpf Page间跳转传参数 And Window To Page

这段时间用到Wpf,页面间的跳转网上有不少的示例,但是有些已经不能用了,尤其是页面间的传参问题更是一大堆,但正确的解决方案却没有几个,或者说写的不清楚,让人走了很多弯路,查看官方文档后发现了正确的姿势,现记录如下 Page页间的跳转 private void Button_Click(object sender, RoutedEventArgs e) { Page2 p = new Page2(); this.NavigationService.Navigate(p, DateTime.Now)

WPF 之 跳转

WPF的跳转有两种:一是windows窗体,另外一种是page页. 1.windows窗体跳转 1)先实例化目标窗体: 2)然后将目标窗体show(). 例如:有两个窗体Main和Login,要想点击Login 窗体上的注册按钮然后跳转到Main上,则在Login窗体的Click事件里代码如下: Main Mn=new Main(); Mn.Show(); 2.Page页面跳转,前台跳转和后台跳转都可以实现 1)前台跳转实现: <TextBlockFontSize="24"Tex

WPF窗口长时间无人操作鼠标自动隐藏

原文:WPF窗口长时间无人操作鼠标自动隐藏 在软件开发中有时会有等待一段时间无人操作后隐藏鼠标,可能原因大致如下: 1.为了安全性,特别是那些需要用到用户名和密码登录服务端的程序,常常考虑长期无人操作,程序自动跳转到用户登录界面: 2.软件为了更好的播放效果,需要隐藏鼠标. 这里写的是第二种情况,wpf做播放时,需要隐藏鼠标. 思路是:假如3s鼠标不动则隐藏,设计了计时器的间隔时间为1s,并添加鼠标没移动的计数器,计数器达到3才执行程序.实现是这样的:每隔1s检测鼠标是否移动,如果不移动则计数器

关于窗口跳转的一些总结

在应用有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe),self是当前窗口, opener是用open方法打开当前窗口的那个窗口. 1.window.self 功能:是对当前窗口自身的引用.它和window属性是等价的. 语法:window.self 注:window.self.window.self是等价的 2.window.top 功能:返回顶层窗口,即浏览器窗口. 语法:window.top 注:

WPF 窗口居中 &amp; 变更触发机制

原文:WPF 窗口居中 & 变更触发机制 窗口居中 & 变更触发机制 解决: 1.单实例窗口,窗口每次隐藏后再显示时,位置居中显示 2.多屏幕下单实例窗口,当父窗口移动到其它屏幕时,单实例窗口再次弹出时,位置才更新到父窗口屏幕. 3.子窗口每次唤醒时,都居中显示. 窗口首次显示的位置 - WindowStartupLocation windows的启动时位置显示,WindowStartupLocation CenterOwner --显示在父窗口的中间(设置Owner) CenterScr

WPF 窗口去除顶部边框(正宗无边框)

原文:WPF 窗口去除顶部边框(正宗无边框) 最近在做一个大屏展示视频图片的项目,功能并不复杂,半天的工作量吧,一开始同事采用的Unity3D进行开发,但是里面要播放4K视频,Unity 的短板就是视频的播放了,今晚就要交付了,我一早就来公司,决定用WPF重新开发一版,各项功能都好了,唯独顶部总是显示一条白色的边,已经设置WindowStyle为None了也没用,幸得网上大神提供的资料,终于解决了这个小问题. XAML内容如下: <Window x:Class="WPF_VideoPlay

设置WPF窗口相对于非WPF窗口的位置

原文:设置WPF窗口相对于非WPF窗口的位置 在前一个Post当中,指出了在WPF的WindowInteropHelper类中的一个BUG:通过WindowInteropHelper的Owner属性不能实现把WPF窗口的Owner属性设置为一个非WPF窗口的句柄. 在我的Post帖出后不到一天,在WPF SDK的Blog上,就针对这个BUG给出了一个非常完美的解决方案.既然不同通过设置WindowStartupLocation.CenterOwner来改变窗口的位置.那么我们就用WindowSt

windows 编程 —— 子窗口类别化(Window Subclassing)

对于子窗口控件,有时我们可能会想要获取子窗口的某些消息,比如在一个主窗口下有三个按钮,如果想要实现使用键盘Tab或者Shift-Tab键来使焦点切换于不同按钮之间,这时就可以使用子窗口类别化(Window Subclassing)的方法. 子窗口类别化: 按钮控件的窗口消息处理程序是Windows内部的.但是,将GWL_WNDPROC标识符作为参数来呼叫GetWindowLong,您就可以得到这个窗口消息处理程序的地址.另外,您可以呼叫SetWindowLong给指定按钮设定一个新的窗口消息处理

Android窗口跳转

1.原始界面 package com.fish.helloworld; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; impo