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


相关推荐

  • aop 概念详解「建议收藏」

    aop 概念详解「建议收藏」本文主要内容什么是Aop?SpringAOP中重要的一些概念详解SpringAOP硬编码实现什么是AOP?先看一下传统程序的流程,比如银行系统会有一个取款流程我们可以把方框里的流程合

    2022年6月30日
    17
  • S3C2440时钟配置「建议收藏」

    S3C2440时钟配置「建议收藏」首先来看一下S3C2440的时钟整体框图:CPU工作于FCLKFCLKUPTO400MHZAHB工作于HCLKHCLKUPTO136MHZAPB工作于PCLKPCLKUPTO68MHZ如何得到以上时钟频率(时钟源:12M晶振):通过PLL锁相环可以得到以上3个所需要的时钟S3C2440有两个PLL一个MPLL是提供时钟给CPU用另一个UPLL提…

    2022年5月15日
    40
  • BIEE_biee报表日志

    BIEE_biee报表日志目录创建资料库创建物理模型创建逻辑模型创建展现模型保存资料库配置 OracleBIServer 使用新资料库在OracleAnswer中定义查询参考创建资料库BIEE的资料库(Repository)是一个后缀名为rpd的物理文件,其中存储了三类元数据:数据源物理模型,逻辑模型,以及展现模型。OracleBIServer是资料库的使用者:在前端,BI

    2022年10月22日
    1
  • WPF数据采集与监控系统实战开发全记录【附源码 典藏版】[通俗易懂]

    WPF数据采集与监控系统实战开发全记录【附源码 典藏版】[通俗易懂]作为B站学习区非知名Up主,本人酷爱沉迷上位机无法自拔!人称”上位机大王“(滑稽)长期为大家提供各类WPF/上位机学习干货是我的信条!元旦在即,我又连肝一周,录制了一批WPF数据采集与监控系统项目开发实战!!录制内容,从上位机应用基础架构出发,全程代码实战,涉及内容包括串口通信、基础组件开发、用户控件动画、全局静态数据绑定等等。从无到有,完整实操,项目整体以MVVM思想模式设计开发,代码功能使用分层结构,逻辑与View解耦。认真看完全部视频,你可以了解到基本的串口通信方式,以及如何利用WPF的特性开发

    2022年6月8日
    38
  • C语言实现五子棋小游戏

    C语言实现五子棋小游戏三子棋,五子棋,无论多少子棋,其原理都是一样的。下面我用五子棋为例讲解用C语言多文件编程实现五子棋。设计电脑和玩家两个作为下棋的两方,用键盘输入作为玩家的游戏操作。1.效果图:程序总的构架:我们只要输入坐标就可以和电脑对弈了。电脑的棋子用‘0’表示,玩家的棋子用‘x’表示。2.打印菜单可以根据自己的爱好设计各种风格的…

    2022年5月12日
    39
  • java找不到或无法加载主类_java找不到或无法加载主类如何解决?解决方法「建议收藏」

    java找不到或无法加载主类_java找不到或无法加载主类如何解决?解决方法「建议收藏」相信有很多人都遇到过java找不到或无法加载主类的这个问题,那么这究竟是什么原因造成的呢?有什么方法可以解决这个问题吗?问题:java文件导入到一个包当中,之后在class文件当中加入一张图片;解决:将class文件中的照片删除即可当然这只是一种情况,对于这样的情况下面做了一下总结,主要的话有下面的几种解决方法。解决方法:检查一下自己的环境变量是不是配置成功win+r输入cmd-输入java…

    2025年7月24日
    0

发表回复

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

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