在windows窗體程式設計中,窗體中的所有視覺化內容都被稱為控制項,在wpf中,不再如此,視覺化內容被稱為元素(element),只有部分元素是控制項。
第二章:xaml
rowspan告訴button占用3行
canvas面板適用需要構建其他一些不同的內容,繪圖表面,canvas.zindex附加屬性來控制它們的層疊方式。
其中cliptobounds canvas會裁剪溢位控制項內容
第四章:依賴項屬性
public static readonly dependencyproperty marginproperty;
根據約定,定義依賴項屬性的字段的名稱為在普通屬性的末尾加上單詞「property".//dependencyproperty 類名
dependencyproperty只能使用靜態的dependencyproperty.register()例項dependencyproperty物件
第五章:路由事件
wpf通過事件路由的概念增強了.net事件模型。
public static readonly routedevent clickevent;
eventmangager.registerroutedevnet()方法註冊。
路由事件通過普通的.net事件進行包裝,從而使所有的.net語言都能夠訪問它們。事件包裝器可以使用addhandler(),
removehandler()方法新增和刪除已註冊的呼叫程式。
routedeventargs e = new routedeventargs(buttonbase.clickevent,this);
base.raiseevent(e);
路由事件實際上以下列三種方式出現:
1.direct event 如:mouseenter事件,源於乙個元素,並且不傳遞給其他元素。
2.bubbling event. mousedown
3.tunneling event 隧道路由事件,在事件到達恰當的控制項之前為預覽事件提供了機會,與冒泡事件方向相反,並以preview開頭
routdeventargs類的屬性
source 事件源控制項
routedevent 通過事件處理程式為觸發的事件提供routedevent物件,如果使用同乙個事件處理程式處理不同的事件,這資訊是非常有用的。
handled 該屬性允許終止事件的冒泡或剖隧道過程。
command 1
command 2
command 3
...pnlbuttons.addhandler(button.click, new routedeventhandler(dosomething));
previewmouseup事件 隧道事件
mouseup事件 冒泡事件
如果將隧道跌幅事件標記為已處理過,那麼冒泡路由事件就不會發生,這是因為兩個事件共享同乙個routedeventargs類的例項。
事件分類5類:
生命週期事件: initialized/loaded/unloaded/activated/deactivated/closing/closed
滑鼠事件:
鍵盤事件: previewkeydown/keydown/previewtextinput/textinput/previewkeyup/keyup
手寫筆事件:
多點觸控事件:
..................
第23章:視窗
window類: show(),showdialog()
showdialog()顯示模態視窗,鎖住所有滑鼠和鍵盤輸入來阻止使用者訪問父視窗,直到模態視窗被關閉。
視窗所有權,當所有者視窗最小化時,被擁有的視窗也會被最小化,當相互重疊時,被擁有的視窗總是顯示在上面。
dialogwindow dialog = new dialogwindow();
if(dialog.showdialog() == true)
else
wpf對話方塊模型相比window視窗,wpf按鈕沒有提供dialogresult屬性。
wpf手動移動視窗在任何時候都可以通過呼叫window.dragmove()方法啟動視窗拖動模式。
改變形狀視窗的尺寸window.resizemode設定為canresizewithgrip
WPF程式設計寶典 WPF概述
寫在結尾 這本書買了很久了,花了半年的時間才看完實在是心中有愧,所以決定重新看一遍,邊看邊寫,寫一下書上的東西和一些自己的理解。沒買這本書的同學可以去買一本看看,如果要入門wpf這本書還是挺好用的。今天講的是什麼是wpf,wpf的特點。比較枯燥,有一定基礎的同學可以自行略過。wpf程式通過direc...
WPF程式設計寶典 XAML
巢狀元素 寫在結尾 從這篇文章開始,我們將正式走入wpf的學習,但是要學好wpf你不僅要了解wpf相關的知識,跟要學好一些輔助的知識點,比如今天講的xaml,xaml是一種標記語言,類似於html,因為我之前幫別人寫過網頁和網頁遊戲,所以對這一塊的理解基本上沒什麼問題,但也僅限於簡單的使用,歸根結底...
WPF程式設計寶典學習筆記目錄
第1章 wpf概述 待寫 第2章 xaml 待寫 第3章 布局 待寫 第4章 依賴屬性 第4章依賴屬性 1 概述 第4章依賴屬性 2 自定義依賴屬性 第4章依賴屬性 3 自定義附加屬性 第4章依賴屬性 4 屬性驗證 第5章 路由事件 第5章路由事件 1 概述 第5章路由事件 2 冒泡路由事件 第5章...