WPF程式設計寶典

2021-06-27 10:59:30 字數 2117 閱讀 1007

在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章...