一个简单的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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Vue一到三年面试题总结

    Vue一到三年面试题总结笔者粉丝群里的朋友们多部分的人都在找vue的工作而没有再找react工作,所以我之前总结的html,css,js,react面试题还不行,还要继续拓展vue的。。于是我就把大家在出去面试的时候遇到的vue面试题以粉丝们投稿的方式收集了起来做个汇总,希望能帮助到更多的朋友们~Vue面试题正文:1.vue全家桶包含哪些?答案:vue全家桶与react全家桶介绍2.v-model是什么?怎么使…

    2022年6月11日
  • c++如何获取系统当前时间(超级详细)

    c++如何获取系统当前时间(超级详细)voidgettime(){time_trawtime;structtm*ptminfo;time(&rawtime);ptminfo=localtime(&rawtime);printf(“current:%02d-%02d-%02d%02d:%02d:%02…

    2022年10月19日
  • redis集群搭建(非常详细,适合新手)_redis集群模式

    redis集群搭建(非常详细,适合新手)_redis集群模式一、基本环境首先我们需要使用VMware配置几个虚拟机,我们需要安装VMWare然后下载自己的linux镜像文件,在虚拟机上安装linux系统,vm15和centos7下载传送门提取码:lvb5。我使用的是centos764,大致步骤可以根据其他博客将第一台虚机的系统安装成功,然后直接clone这台机器就可以了,然后需要修改ip。二、准备相关软件安装包…

    2022年10月15日
  • 墙裂推荐4款js网页烟花特效

    以下是几款网页特效和一款软件:http://keleyi.com/keleyi/phtml/jstexiao/2.htmhttp://keleyi.com/keleyi/phtml/html5/14

    2021年12月22日
  • python的进制转换器,Python进制转换[通俗易懂]

    python的进制转换器,Python进制转换[通俗易懂]进制转换:进制转换是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。基数是指,进位计数制中所采用的数码(数制中用来表示“量”的符号)的个数。位权是指,进位制中每一固定位置对应的单位值。简单转换理念:把二进制三位一组分开就是八进制,四位一组就是十六进制二进制与十进制:(1)二进制转十进制:“按权展开求和”(1011)2=1×2**3+0x2**2+1x…

    2022年5月19日
  • Python 技巧篇-pip卸载python库实例演示,查看pip命令大全方法[通俗易懂]

    Python 技巧篇-pip卸载python库实例演示,查看pip命令大全方法[通俗易懂]Python技巧篇-pip卸载python库实例演示,查看pip命令大全方法。因为安装的PyHook3没安装对吧,有点问题,就想着把它卸载掉,然后再重新安装一个,那应该怎么卸载呢?非常简单,就是pipuninstallxxx,正好和我们安装时的pipinstallxxx对应,下面还有一个确定操作,填y就是继续了,n就是取消了。python库卸载演示。cmd直接输入pip,回车就可以看到pip的命令大全了。

    2022年10月18日

发表回复

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

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