學習WPF 了解WPF中的XAML

2021-09-09 01:20:49 字數 2424 閱讀 7077

xaml的簡單說明

xaml是用於例項化.net物件的標記語言,主要用於構建wpf的使用者介面

xaml中的每乙個元素都對映為.net類的乙個例項,例如對映為wpf的button物件

xaml可以在乙個元素中巢狀另乙個元素,例如grid元素可以巢狀button元素

了解xaml

visualstudio建立乙個視窗,預設情況下產生的**如下:

這段**中包含兩個標記元素,乙個是window,乙個是grid

window

用於描述乙個視窗

page

和window類似,但它用於可導航的應用程式

用於定義應用程式資源和啟動設定

任何乙個xaml文件只能擁有乙個頂級元素

屬性

視窗標籤中title、height、width都是視窗的屬性

在xaml檔案中屬性的值的型別總是字串,

但xaml的解析器可以把這些字串轉換成.net的任意型別

命名空間

在上面**中,用xmlns屬性來標記此文件從屬於哪個命名空間

為什麼需要命名空間呢?

如果我們在第三方元件中定義了window類,如果沒有乙個命名空間做限定的話,

編譯器不知道我們將使用哪個window型別來渲染視窗

我們在上面的**中,看到了兩個命名空間,乙個是wpf核心命名空間、乙個是xaml命名空間

wpf核心命名空間

包含所有wpf類,包含用來構建使用者介面的控制項,是文件的預設命名空間

xaml命名空間

包含各種xaml實用特性,這些特性可以影響文件的解釋方式,該命名空間被對映為字首x,使用前需要標註字首x,比如:

有了命名空間的限定,我們直接書寫的標籤,才可以對映到system.windows.controls.grid類上

**隱藏類

xaml建立使用者介面,但互動規則還是需要.net語言編寫

x:class屬性標記著與該xaml檔案相配合的.net類

注意這個類是乙個「部分類」

這個部分類的建構函式中呼叫了initializecomponent方法,

這個方法負責建立控制項物件、設定屬性、繫結事件、構造使用者介面等工作

複雜屬性

有些屬性的值不是乙個簡單型別,而是乙個物件,不如下面這個grid的背景顏色

我們現在只要知道xaml解析器也能建立出複雜屬性對應的值即可

標記擴充套件

如果我們希望把屬性值繫結為乙個已經存在的物件,那麼我們可以使用靜態標記擴充套件

標記擴充套件還有很多其他的用法,我們以後再聊

這裡也涉及到了屬性繫結,我們以後再聊

附加屬性

對於巢狀的元素,子元素可以使用父元素定義的一些屬性,這類屬性就是附加屬性

在wpf中附加屬性多用於布局

修改記錄

2015-1-5:完成全部內容

參考資料

《pro wpf 4.5 in c# 4th edition》

msdn

備註

本篇只簡單介紹了xaml的常見知識,還有一些不常見的知識、高階主題暫時沒有涉及

學習WPF 了解WPF中的XAML

xaml的簡單說明 xaml是用於例項化.net物件的標記語言,主要用於構建wpf的使用者介面 xaml中的每乙個元素都對映為.net類的乙個例項,例如對映為wpf的button物件 xaml可以在乙個元素中巢狀另乙個元素,例如grid元素可以巢狀button元素 了解xaml visualstud...

學習WPF 了解路由事件

入門 我們先來看乙個例子 前台 後台 點選按鈕的執行效果 第乙個彈出視窗 第二個彈出視窗 第三個彈出視窗 說明 當點選按鈕之後,先觸發按鈕的click事件,再上查詢,發現stackpanel也註冊了該事件,那麼接著觸發stackpanel的button.click事件,依次再觸發grid的butto...

WPF學習(1)WPF概述

wpf是microsoft繼winform之後的又一使用者介面設計框架,和windows communication foundation wcf windows workflow foundation wf 一起隨.net 3.0發布。wpf是當前眾多優秀技術的集大成者,有很多的亮點。為了充分利用...