一、前言
公司專案基於wpf開發,最近專案上線有點空閒時間寫一篇基於wpf的基礎教材,wpf也是近期才接觸,學習wpf也是在網上查資料與微軟的msdn進行學習,寫本部落格的目為了溫故而知新把學習過程記錄下來,以備後查。
學習wpf的基礎知識:
1) wpf是微軟提供的一種用來開發「桌面應用」的技術(框架),這項技術本身和c#沒有關係,必須會的是xaml語法。
2) 對xml、html、xhtml、asp.net之類的「標準通用標記語言」,對於學習是有所幫助的。
3)有winform或asp.net經驗,主要是對控制項事件的處理要有所了解。
4)具備物件導向的思想:在wpf中,經常要靈活運用各種繼承關係、多型、過載等。
5) databinding要有所了解:binding是wpf的一大亮點。
二、本系列使用到的工具:
1)開發環境:windows 7
2)開發工具:visual studio 2017
3)資料庫:access
資料庫,sqlite
三、wpf開發基礎
1.開啟visual studio 2017 ,選擇「選單—》檔案—》新建—》專案」。如下圖。
2.在「新建專案」對話方塊中選擇「wpf應用程式」,修改名稱為自己專案的名稱,然後點選「確定」按鈕,便成功建立了乙個「wpf應用程式」。新建立的專案所引用的公共類庫如下。如下圖。(「wpf應用程式」會在「引用」裡面自動新增下圖中所示的presentationcore、presentationframework、windowsbase三大核心程式集)。
3. 專案的生成的檔案結構。如下圖。
5. mainwindow.xaml的設計窗體中我們可以修改title。還可以設定mainwindow的屬性和新增事件。完成了這些設定以後,我們就可以對窗體新增內容了,如下圖。
6. 我在這個窗體中新增了乙個 viewbox, viewbox元件的作用是拉伸或延展位於其中的元件,使之有更好的布局及視覺效果。
7.介紹下wpf最常用的幾種布局方式
1)stackpanel:堆疊面板,通過orientation屬性設定子元素的布局排列方向為「vertical」(垂直)和「horizontal」(水平),不寫其預設值為「vertical」,當設定為「vertical」時子元素會沿水平方向拉伸,反之設定為「horizontal」時子元素會沿垂直方向拉伸。
2)dockpanel:支援子元素停靠在面板的任意一條邊上,通過附加屬性dock控制他們的停靠位置(left、top、right、bottom),填充空間按照「先到先得」的原則,最後乙個加入面板的子元素將填滿剩下的空間,如不想將最後加入面板的元素填滿剩下的空間將屬性lastchildfill值設為「false」,預設為「true」。
34)canvas:面板是最輕量級的布局容器,它不會自動調整內部元素的排列和大小,不指定元素位置,元素將預設顯示在畫布的左上方。canvas主要用來畫圖。canvas預設不會自動裁剪超過自身範圍的內容,即溢位的內容會顯示在canvas外面,這是因為canvas的cliptobounds屬性預設值是「false」,我們可以顯式地設定為「true」來裁剪多出的內容。下面xaml**簡單演示了canvas面板的使用。
6)grid:比起其他panel,功能是最多最為複雜的布局控制項。它由列元素集合和行元素集合兩種元素組成。而放在grid面板中的元素必須顯式採用附加屬性定義其所在行和列,否則元素均預設放置在第0行第0列。
四、小結
wpf布局牽涉的內容很多,只有在平時不斷積累才能漸趨完善!本人接觸wpf不到一年,寫的不好勿噴,有不足之處還望大家多多指正。
WPF入門教程系列一 基礎
一 前言 最近在學習wpf,學習wpf首先上的是微軟的msdn,然後再搜尋了一下網路有關wpf的學習資料。為了溫故而知新把學習過程記錄下來,以備後查。這篇主要講wpf的開發基礎,介紹了如何使用visual studio 2013建立乙個wpf應用程式。首先說一下學習wpf的基礎知識 1 要會一門.n...
WPF入門教程系列一 基礎
原文 wpf入門教程系列目錄 wpf入門教程系列四 dispatcher介紹 wpf入門教程系列五 window 介紹 wpf入門教程系列六 布局介紹與canvas 一 wpf入門教程系列八 布局之grid與uniformgrid 三 wpf入門教程系列九 布局之dockpanel與viewbox ...
WPF入門教程系列一 基礎
一 前言 最近在學習wpf,學習wpf首先上的是微軟的msdn,然後再搜尋了一下網路有關wpf的學習資料。為了溫故而知新把學習過程記錄下來,以備後查。這篇主要講wpf的開發基礎,介紹了如何使用visual studio 2013建立乙個wpf應用程式。首先說一下學習wpf的基礎知識 1 要會一門.n...