WPF學習筆記(一)

來源:互聯網
上載者:User

對於廢話常常還是要說的,不說怎麼知道是廢話;所以這一段還是把它羅列出來了,等到人老體衰的時候也好懷念下當時是怎麼工作的。

 

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)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.