正文
上一篇介紹了Grid和StackPanel兩種容器,其中Grid可以分行又分列,而StackPanel在某些特殊情況下避免了很多麻煩,可以直接將控制元件推疊起來。
好啦!今天我們講一講一些常用的,基礎的XAML控制元件和常用屬性!
- TextBlock
這是用於顯示文字的,學c和cpp等等的用控制檯的朋友肯定都知道,那是直接console裡面輸出就行了。但到了視覺化軟體開發可就沒那麼簡單了,我們就需要TextBlock
語法如下:
效果如下:
✨其中,Text裡面就是你要它顯示的文字,而Foreground裡面是你字的顏色,FontSize是你的字型大小,FontWeight則是加粗等等字型的處理。TextWrapping是用來包裹你的文字的,啥叫包裹呢?
舉個栗子? 如果你的文字很長,而使用者將你軟體的視窗調的比較窄,而你又沒設定TextWrapping,則會出現如下圖的效果:
後面多出來的文字沒法顯示了!
那這時候TextWrapping=“Wrap”的作用就出來啦!
如下圖的效果:
✨除此之外,TextBlock還有很多妙用!
比如你想顯示一個圖案,怎麼辦呢?
這時候開啟我們第一篇提到的開發輔助軟體:字元對映表,下圖這個:
開啟後在左側邊欄內找到Segoe MDL2 Assets,如下圖所示:
這其實就是一種字型,微軟當年uwp欽定字型#(受虐滑稽)當然你喜歡哪個字型就用哪個#(受虐滑稽)
然後我要找我自己想要的圖案了,比如我想要找個表示主頁的按鈕!我們在那個軟體中點選我們想要的圖示,如下圖:
這時候看到XAML轉移程式碼,複製下來。(下面兩種程式碼也可以用來寫圖案,今後有機會再提)。然後我們來到vs中,如下圖這麼寫:
其實注意了,就兩處改動,其中Text的那個property改為剛剛複製的XAML轉義符,然後FontFamily寫Segoe MDL2 Assets。其實FontFamily表示的就是字型,裡面填上你剛才使用的字型即可!
- TextBox
這就是使用者的文字輸入框,語法如下:
效果如下:
看!這就是一個使用者可以輸入文字的文字框,其中PlaceholderText指的是使用者還沒輸入東西的時候,裡面預先顯示的文字。
- Button
顧名思義啦,按鈕啦!程式碼如下:
效果如下:
✨這時候button裡面顯示的文字不再是Text屬性,而是Content屬性,foreground就自然是字的顏色啦,background就是按鈕的背景顏色!至於如何處理按鈕點選事件,我們下次再提。
PS:Button內也可以顯示圖案,方法和TextBlock裡介紹的有異曲同工之妙,大家去試試吧!
好啦!幾個最為基礎的控制元件都介紹完了!
其實XAML提供了很多控制元件!
大家都可以在前言中提到的XAML Control Gallery中瀏覽一下各種控制元件的樣子和程式碼以及一些常用屬性。
比如ListView,GridView,Image,MediaElement,Flyout等等等等,其實都是我們常用的。
- 如何規定控制元件在Grid中的位置!
上篇提到了Grid可以分行分列,那麼我們怎麼規定控制元件在哪兒呢?
其實很簡單,有兩個屬性叫做Grid.Column和Grid.Row,分別表示列和行的位置。
如下圖:
這裡面我就把這個button放在了Grid的第三行和第二列!為什麼是第三行第二列,而不是第二行第一列?這和邏輯語言裡面一樣,序號是從0開始的,0表示第一行或第一列,一次類推。如果你不寫明幾行幾列,XAML編譯器會預設把你的控制元件都放在第一行第一列。
✨如何使得控制元件跨行或列?
XAML還有一個屬性叫做Grid.RowSpan和Grid.Column Span,分別表示跨幾行和跨幾列。
舉個栗子?:
這裡面這個button就放在第三行第二列的同時,跨兩行,跨三列!對!RowSpan和ColumnSpan是從1開始的,如果你不設定,預設是隻跨1行1列,也就是說它只佔用它所固定的位置。RowSpan為3則表示跨3行,以此類推。
✨你可以所有XAML控制元件設定在Grid中的位置(前提是你有先設定了Grid)
- 如何設定控制元件的對齊方式?
這時候,便引入XAML中的另一個屬性,叫做HorizontalAlignment和VerticalAlignment,分別表示水平方向的對齊方式,和垂直方向的對齊方式。
舉個?:
這個時候,我便把這個button水平方向上居中,垂直方向上位於頂部。我們也可以放在底部等等。
總結
別看我說這些都是簡單控制元件,其實就比如TextBlock還有很多用法,我只是沒有一一列舉,大家感興趣的話都可以自己摸索,畢竟vs宇宙第一IDE不是吹的,寫XAML就跟做選擇題一樣,屬性全都給你列出來!大家可以一個一個地去試試!
好啦謝謝大家!如有不懂或疑問,下方評論哈!
下篇見!