WPF关于窗口跳转的设计

问题描述

WPF中,窗体跳转怎么个跳转法比较好?或者怎么设计比较好?打个比方,一般winform的,先隐藏上一层的窗体,然后new出下一层要显示的窗体,然后show出来。WPF当然也可以这样。不过这样感觉不是很流畅。在WPF中还有两种方法,一种是跳转page页,一种是将窗体当成用户控件,然后add到一个模板窗口。流畅程度觉得肯定是将窗体当成用户控件,然后add到一个模板窗口的好。然后下面说一下我的需求和我的设计以及遇到的疑惑:需求:有很多窗体需要跳转,然后这些窗体又有很多一样的地方。设计:首先我将一样的地方做为一个模板窗体。该窗体包括:将一个grid分为3行。第一行是标题,第二行是add用户控件的地方,最后一行是“上一步”和“下一步”的按钮。然后在初始化模板窗体的时候,初始化List<UIElement>,这个LIst里面放的是用户控件add的顺序。然后设计算法在点击上一步和下一步的时候,系统知道要加载哪个用户控件进行显示。问题:现在的问题是,比如窗体a要跳转到窗体b。可是它的跳转并不是通过点击下一步进行的。此时“下一步”按钮应该隐藏,然后通过点击窗体a中的用户控件中里面的四个按钮,通过点击这四个按钮中的其中一个进行跳转。这样的话我就不知道怎么做了。模板窗体中的grid属于私有控件,而四个跳转按钮是属于用户控件中的控件,并无法访问到模板窗体中的grid,所以也就不能将用户控件add到grid里面。疑惑:遇到这个问题,那么是否是我跳转窗体的设计不好?或者应该怎么设计才是正确的?这是我最想问的。其次我想是解决我上面问题的方法。如果你能告诉我跳转应该怎么设计才好,第二个问题也就不用回答了。我会重新设计我的结构。

解决方案

解决方案二:

解决方案三:
脑袋都想大了,还没明白你的意思,你能截个图吗?
解决方案四:
引用2楼danding_ge的回复:

脑袋都想大了,还没明白你的意思,你能截个图吗?

解决方案五:
引用3楼yuandinxiaozhu的回复:

Quote: 引用2楼danding_ge的回复:
脑袋都想大了,还没明白你的意思,你能截个图吗?

我不太明白,但是感觉你把2中的内容使用wpf的内容控件显示,3的内容不变,当点击a图中的下一步,切换内容控件显示,同时把下一步按钮隐藏。至于点击用户控件,lz可以写一个“上抛“事件,用于在父窗口获得,完全可以显示成e图那个样子。
解决方案六:
你需要学学MVVM,再找个框架,比如Prism,你说的这些东西其实都是框架考虑的事情,用起来很简单,又专业多好。就是学习资料都是英文的,得自己读。除非公司有现成的项目,你一看看就懂了。
解决方案七:
可以先把每个框架都设计好,通过隐藏显示来控制。

时间: 2024-10-26 01:51:30

WPF关于窗口跳转的设计的相关文章

java求双色球模拟要有JFrame窗口的代码加设计思路

问题描述 java求双色球模拟要有JFrame窗口的代码加设计思路 求双色球模拟要有JFrame窗口的代码加设计思路.求算法简单点的,万分感谢 解决方案 红球1-33,随机选6个,蓝球1-16随机选一个,就是一个随机数吧,有什么具体的要求么.

wpf 主窗口,里面含有子窗口,可以在打开的子窗口之间切换

问题描述 wpf 主窗口,里面含有子窗口,可以在打开的子窗口之间切换 主窗口,里面含有子窗口,可以在打开的子窗口之间切换,也可以将打开的子窗口关闭,类似于tablecontrol是否可以在tablecontrol控件放窗口 解决方案 可以使用mdi窗口http://www.codeproject.com/Articles/32362/Tabbed-MDI-in-WPF

WPF换肤之四:界面设计和代码设计分离

原文:WPF换肤之四:界面设计和代码设计分离 说起WPF来,除了总所周知的图形处理核心的变化外,和Winform比起来,还有一个巨大的变革,那就是真正意义上做到了界面设计和代码设计的分离.这样可以让美工和程序分开进行,而不是糅合在一块,这样做的好处当然也是显而易见的:提高了开发效率. 原先的设计方式 在我们之前设计的代码中,每当添加一个新的窗体的时候,我总是会在这个新的窗体的XAML文件中加入如下的代码,以便使样式能够应用上去: View Code <Window x:Class="Wpf

2000条你应知的WPF小姿势 基础篇&lt;74-77 WPF 多窗口Tips&gt;

原文:2000条你应知的WPF小姿势 基础篇<74-77 WPF 多窗口Tips> 在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师.最为出色的是他维护了两个博客:2,000Things You Should Know About C#  和 2,000 Things You Should Know About WPF .他以类似微博式的150字简短语言来每天更新一条WPF和C#重要又容易被遗忘的知识.很希望能够分享给大家. 本系列我不仅会翻译他的每一个ti

asp.net中wpf实现page跳转页面

在wpf项目中,经常遇到需要跳转窗口的功能,在以前分享一篇了 今天在分享一段代码,是通过content进行页面跳转的,这个和web的跳转就一点都不一样了. 界面: 点击menu1 和2都会跳转到Page1.xaml和 Page2.xaml 前台xaml:  代码如下 复制代码 <Window x:Class="WpfApplication3.MainWindow"         xmlns="http://schemas.microsoft.com/winfx/200

WPF中ICommand接口 的一个设计问题

public interface ICommand { // Summary: // Occurs when changes occur that affect whether or not the command should execute. event EventHandler CanExecuteChanged; bool CanExecute(object parameter); void Execute(object parameter); }   // Defines an obj

请问:弹出窗口跳转问题

问题描述 点击a页面的button后弹出b页面(不是跳转到b页面,所以a,b同时存在).现在要求是再点击b页面的按钮后b关闭,并调回到a页面并传递参数.我使用的代码如下:stringstrPath=string.Format("window.open('to.aspx?para1=sun','','Width=600,Height=400').moveTo(screen.width/2-125,screen.height/2-150);");this.ClientScript.Regi

培训网站跳出率优化:JS跳转页设计指南

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 所谓跳出率,按照百度统计给出的准确解释,意思是只浏览了一个页面便离开了网站的访问次数占总的访问次数的百分比.也就是说,一个用户访问了你的网站,只在其着陆页面进行了停留没有再打开网站的其他任何一个页面的这种行为占所有访问用户的一个比重.其实说白了,所谓"跳出"也即一个IP只换来一个PV.跳出率是衡量一个网站用户体验的一个重要

WPF的Jumplist跳转列表问题

问题描述 想写一个程序,大概就是管理远程桌面的,因为系统的mstsc的跳转列表只有IP,多的情况下不知道哪个是哪个.这是App.xaml.cs里的代码,也就是可以接受启动参数protectedoverridevoidOnStartup(StartupEventArgse){MainWindowPowerRD;PowerRD=newMainWindow();if(e.Args.Length>0){PowerRD.ShowEx(e.Args[0]);}} ShowEx方法publicvoidShow