一个简单的WPF界面框架

一个简单的WPF界面框架

  想自己开发一个程序,有Menu菜单栏,点击菜单栏能够弹出相应界面。但是点击弹出的一般都是WINDOW。想要放在一个子页签下,可以用TabControl.

但是TabControl默认是显示时就加载所有子TabItem的,太笨重,而且TabItem也没法关闭释放资源。一旦页签多了,变得异常的笨。

于是开发了一个简单的基于TabControl的界面框架,支持点击菜单动态加载页面支持关闭页面

界面如下

一个简单的WPF界面框架

 

代码比较简单,有兴趣的朋友直接看源码    https://files.cnblogs.com/files/CSSZBB/%E7%95%8C%E9%9D%A2%E8%AE%BE%E8%AE%A1%E4%B8%93%E7%94%A8.zip

 

step1: 新增主界面,放入Menu控件,Menu下面放一个TabControl用来放置点击Menu后动态生成的页面。

step2:  修改TabItem的style 吧关闭按钮给添加上去,并且继承TabItem新增一个CloseTabItem控件

step3: 新增路由事件–关闭按钮点击事件。当点击关闭按钮的时候触发,在TabControl添加对该事件的关注。

step4:新写关闭按钮的点击事件,在点击事件里面触发关闭按钮点击路由事件,同事把关闭按钮所在的TabItem作为事件参数上传。

step5:TabControl收到路由事件,从事件参数中获取是哪个CloseTabItem触发了,从自己的Items中Remove移除该CloseTabItem;

step6: 手动GC.colect 。释放当前关闭的CloseTabItem所占用的资源。

 

主要使用到的知识点

1   C# gc垃圾回收机制

2   路由事件

3 :思考事件的传递与处理。比如点击某个TabItem,会切换到该TabItem。这样一个过程中,都经过了哪些事件的触发和处理。(多看源码)

 

转载于:https://www.cnblogs.com/CSSZBB/p/9505986.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101477.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 众包兼职平台有哪些_美团众包兼职的心酸

    众包兼职平台有哪些_美团众包兼职的心酸众包平台,是世界著名科技杂志《连线》(Wired)2006年发明的一个专业术语,用来描述一种新的商业模式,即企业利用互联网来将工作分配出去、发现创意或解决技术问题。那么,众包平台有哪些?五大众包平台,

    2022年8月2日
    6
  • Oracle sqlplus 查询结果显示优化

    Oracle sqlplus 查询结果显示优化使用Oraclesqlplus进行查询时经常会碰到查询结果显示问题,字段和查询结果难以直接对应显示。这个是因为sqlplus的设置问题,在Windows环境下,可直接在查询窗口“右键-环境”,修改屏幕显示的缓冲区设置,将设置值调整到合适的值,确定即可。Linux环境下可直接设置环境变量setpagesizexxx;setlinesizexxx;修改显示的方式有很多…

    2022年7月16日
    22
  • Python标准库之time和datetime

    注:博客转载自:https://www.cnblogs.com/zhangxinqi/p/7687862.html1、python3日期和时间Python程序能用很多方式处理日期和时间,转换日期

    2021年12月29日
    46
  • 电商网站后台九大功能模块详解[通俗易懂]

    电商网站后台九大功能模块详解[通俗易懂]电商网站后台九大功能模块详解 随着电子商务的发展,网上购物正在趋于一种时尚,电子商务网站也逐渐成为企业顺应潮流的标配。大多数人知道可能在电子商务网站前端有查询,注册登录,购物车等等功能。可是您知道建设电子商务网站后台功能模块都有哪些么?今天我们就聊聊电商网站后台功能模块的那些事。电子商务网站整个系统的后端管理,按功能划分为九大模块,包括商品组织管理、订单处理、内容发布管理等模块。一、后台…

    2022年10月1日
    3
  • 用python浪漫告白_python动态心形代码

    用python浪漫告白_python动态心形代码Python是一种面向他人进行的说明型编程方法,其源代码与说明器CPython遵守GPL协议,语法简洁清晰。那么,我们用少量的Python代码能做哪些有趣的东西?让小编告诉你。一、编写浪漫的心型1、图形都是由一系列的点(X,Y)构成的曲线,由于X,Y满足一定的关系,所以我们就可以建立模型,建立表达式expression,当关系满足时,两个for循环(forXinrange;forYin…

    2022年9月24日
    4
  • Jasypt 加密-引言「建议收藏」

    Jasypt 加密-引言「建议收藏」Jasypt也即JavaSimplifiedEncryption是Sourceforge.net上的一个开源项目。在当地时间11月23号的通告中,Jasypt1.4的新特征包括:加密属性文件(encryptablepropertiesfiles)、SpringFramework集成、加密Hibernate数据源配置、新的命令行工具、URL加密的Apachewicket集成以及升级文档。根据Jasypt文档,该技术可用于加密任务与应用程序,例如加密密码、敏感信息和数据通信、创建完整检查数据

    2022年9月26日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号