一個簡單的WPF界面框架


  想自己開發一個程序,有Menu菜單欄,點擊菜單欄能夠彈出相應界面。但是點擊彈出的一般都是WINDOW。想要放在一個子頁簽下,可以用TabControl.

但是TabControl默認是顯示時就加載所有子TabItem的,太笨重,而且TabItem也沒法關閉釋放資源。一旦頁簽多了,變得異常的笨。

於是開發了一個簡單的基於TabControl的界面框架,支持點擊菜單動態加載頁面支持關閉頁面

界面如下

 

代碼比較簡單,有興趣的朋友直接看源碼    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。這樣一個過程中,都經過了哪些事件的觸發和處理。(多看源碼)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM