對於廢話常常還是要說的,不說怎麼知道是廢話;所以這一段還是把它羅列出來了,等到人老體衰的時候也好懷念下當時是怎麼工作的。
1.1 建立第一個WPF應用程式
1.1.1 Visual Studio 2008建立WPF
首先開啟vs2008 ,單擊File -> New -> Project見(圖 1-1)
(圖 1-1)
在彈出的介面中選中WPF Application見(圖 1-2)
(圖 1-2)
修改檔案的路徑名和項目名稱,其中(圖1 -3)中的
Name 指project 的名字.
Location 指你檔案存放的地址.
Solution Name Solution 可以包含多project ,如果只有一個project,名字可以一樣.
Create directory for solution 指為solution建立一個檔案夾,而不至於你的檔案散亂在外,當然如果你已經制定了檔案夾可以忽略此選項,檔案夾名字和項目名稱一致見(圖1-4).
Add to Source Control 指為項目添加如VSS,TFS等版本控制軟體,適合多人協作時使用
(圖1-3)
(圖 1-4)
單擊OK,完成項目建設.在vs2008的左邊會出現一個建立好的項目,刪除其中的兩個App.xaml和Window1.xaml以及它們對應的CS檔案後,見(圖 1-5),一個項目就 出現在我們眼前了.
(圖 1-5)
選中綠色的Project 項目,點擊右鍵,Add -> NewItem見圖(1-6).
(圖 1-6)
選中Templates 中的 Class,修改Name中的名稱.見(圖 1-7)
(圖 1-7)
單擊Add後項目變為添加了一個c#檔案的項目(HelloWorld.cs).就這樣項目就建立好了.見(圖 1-8)
(圖 1-8)
1.1.1 後端代碼部分
雙擊HelloWorld .cs 檔案開啟後可以見到一個HelloWorld的一個類,是不是感覺孤孤單單,那讓我們把它一點點充實起來吧.
public class HelloWorld:Window
{
}
因為我們是在Window 開發環境下進行開發所以我們選擇的基類是Window,如若是Web的話就要選擇Page了,注意不要忘記加引用, using System.Windows;不過vs2005之後就有智能提示,這讓我們的工作輕鬆了很多.
學過C語言的朋友都知道程式都有入口Main,WPF裡預設會自動產生一個,所在目錄為 obj\Debug\App.g.cs,但是你想要自己定義一個函數入口,比如需要定義參數,或是在主表單啟動前先彈出登入對話方塊的話,那就需要自己寫一個.
public class HelloWorld : Window
{
[STAThread]
public static void Main()
{
Application app = new Application();
app.Run(new HelloWorld());
}
public HelloWorld()
{
}
}
其中注意Main是static函數,而且它的頭上是有個[STAThread]來標註它是開始線程,我們的程式Application,要啟動(run)一個函數,就要把那個類給執行個體化出來.
不過我們還要做個動作,剛才不是說了麼,WPF 有個預設的Main函數,那怎麼讓系統啟動我們自己寫的程式呢.還是選中項目的屬性(Properites)見(圖 1-9),然後再Application中的Startup object裡選中我們剛才寫的那個Main函數.見(圖1-10)
(圖1-9)
(圖1-10)
點擊Debug 按鈕或是F5就可以運行程式了.不過是不是感覺太空空了呢.見圖(1-11)
(圖 1-11)
那讓我們填充一些東西上去吧.
public HelloWorld()
{
Button button = new Button();
button.Name = "firstButton";
button.Content = "I'm a button";
this.Content = button;
}
代碼看上去沒有什麼特別,不過其中Button的Content屬性容易讓人聯想到Winform的Text屬性,實際上在WPF中Content是一個相當於容器的概念,Content所賦予的 I’m a button 這段文字其實是一個TextBlock 的代碼封裝,如同:
TextBlock text = new TextBlock();
text.Text = "I'm a button";
button.Content = text;
同理Window 也有這麼個Content的容器,我們才能如此舒舒服服的把Button控制項放進去。
運行結果如(圖1-12)所示
(圖1-12)