UWP 开发初阶 Chapter 6 - 简单介绍如何使用 C# 改变 XAML 控件的属性
上篇回顧
上篇介紹了通過 this.Frame.navigate(typeof(PageName)); 實現(xiàn)的全局頁面導(dǎo)航,以及通過在 XAML 中建立 Frame ,并通過 frameName.navigate(typeof(PageName)); 實現(xiàn)的局部頁面導(dǎo)航。
本篇正文
本篇將講述如何通過 C# 設(shè)置或改變 XAML 中控件的屬性。例如常用的 TextBlock 等等。
回顧一下:
先前的文章已經(jīng)涉及到 Name 這個屬性,給一個 XAML 控件取了個名字過后,我們就可以在 .xaml.cs 文件中引用它啦!這樣也就可以改變了它的一些相關(guān)屬性。
我們先為我們接下來的任務(wù),做一些基礎(chǔ),把基本的東西寫入 .xaml ,我們接下來要通過按鈕點擊,來改變一個 TextBlock 的各種屬性。
-
下面,大家自己動手。在一個空白 MainPage.xaml 里的 Grid 里面寫一個 StackPanel ,而 StackPanel 里面先放一個 TextBlock 。代碼如下:
<Grid><StackPanel><TextBlock Name="myTextBlock"/></StackPanel> </Grid> 復(fù)制代碼
好了,準(zhǔn)備工作完成了,我們的 TextBlock 都只給它一個名字,其他我們通過 C# 來實現(xiàn)!
注意:以下為了課程方便,未給 Button 設(shè)置名字,正式開發(fā)中,請養(yǎng)成給他們?nèi)∫子趨^(qū)分的名字的好習(xí)慣
任務(wù)一:通過點擊按鈕,在 TextBlock 里面顯示 “Hello, world!”
-
我們先在 StackPanel 里面加一個按鈕,同時新建一個點擊事件,代碼如下:
<Button Content="Click to show text" Click="Button_Click"/> 復(fù)制代碼 -
然后,找到 vs 幫你新建的事件,在里面寫如下代碼:
提示:將光標(biāo)移到新建的事件的名字上,按 F12 可以快速跳轉(zhuǎn)至事件定義。
myTextBlock.Text = "Hello, world!"; 復(fù)制代碼解釋:myTextBlock 就是我們之前在 .xaml 文件中定義的一個控件,而 myTextBlock.Text 就是這個控件里面的文字,這個屬性的類型為 string 。
-
好了!第一個任務(wù)完成了,我們先慢點編譯,繼續(xù)做下一個任務(wù)。
任務(wù)二:通過點擊按鈕,改變 TextBlock 里面的文字
-
我們先依舊在 StackPanel 里面新建一個按鈕,代碼如下:
<Button Content="Click to change text" Click="Button_Click_1"/> 復(fù)制代碼 -
然后轉(zhuǎn)到新建事件,寫如下代碼:
myTextBlock.Text = "This is UWP Development Tutorial!"; 復(fù)制代碼 -
這時候我們就將 TextBlock 里面的文字改為新的文字了!我們再進行下一步。
任務(wù)三:通過點擊按鈕,改變 TextBlock 里面文字的顏色
-
依舊新建一個按鈕,XAML 代碼就不再贅述了,一個思路。
-
然后轉(zhuǎn)到新建的事件里面,寫如下代碼:
myTextBlock.Foreground = new SolidColorBrush(Colors.Red); 復(fù)制代碼**解釋:**大家應(yīng)該還記得,Foreground 表示的是 TextBlock 里面字的顏色,而這個 Foreground 屬性的類型為 Brush,因此我們需要新建一個 SolidColorBrush,而后面的括號里面的 Colors 就是我們在 XAML 中編寫 Foreground 的時候那一串顏色。(注意:Colors 需要 using Windows.UI)。
**補充:**其實 SolidColorBrush 只是眾多 Brush 中的一種。還有 LinearGradientBrush,也就是我們熟知的漸變色。還有 AcrylicBrush,這也就是微軟先前發(fā)布的 Fluent Design 中的一個重要元素,亞克力!
-
這時候,補充一點,大家上手的話會發(fā)現(xiàn),Colors 里面的顏色都是一些微軟幫你設(shè)定好的,而你卻想通過 RGB 來設(shè)定顏色,這時候你可以通過這行代碼。
myTextBlock.Foreground = new SolidColorBrush(Color.FromArgb(255, 255, 0, 0)); 復(fù)制代碼注意:這里面是 Color 而不是 Colors,同時 FromArgb 后的括號里面,有四個變量,其實有一定編程基礎(chǔ)的朋友大概都能猜到,第一個 A 值便是透明度,而不同于 Java 中的阿爾法值區(qū)間是 0 - 1,這個 A 的值的區(qū)間是 0 - 255,其中值越小,越透明。而剩下的依次為 R、G、B
-
顏色的變化也完成啦!下一步!
任務(wù)四:通過點擊按鈕改變字體大小
-
依舊新建一個按鈕啦!
-
然后在 csharp 文件中的事件定義處,寫下如下代碼:
myTextBlock.FontSize = 30; 復(fù)制代碼解釋:FontSize 的這個屬性的類型為 double,因此這步操作很簡單。補充個知識,如果你不去設(shè)置 FontSize,那默認是 15,所以這里面我們相當(dāng)于把字變大了。
-
好了!下一步!
任務(wù)五:通過點擊按鈕,加粗字體
-
新建按鈕!
-
然后找到找到事件定義:
myTextBlock.FontWeight = FontWeights.Bold; 復(fù)制代碼解釋:.FontWeight 里面就是使得字體加粗,或者變細等等,而注意賦值號右邊是 FontWeights,而不是 FontWeight ,其中 FontWeights 需要 using Windows.UI.Text。
-
好啦!
好啦!今天的任務(wù)就暫告一個段落!快去編譯試試看吧!效果如下:
結(jié)語
其實我們今天講的只是冰山一角,但凡是這個控件有的屬性,我們都可以通過 C# 進行更改,只不過可能有時候會比較繁瑣,如果大家愿意,可以自己去 vs 上試一試其他的屬性是怎么更改的,不明白的也可以隨時問我,或在下方留言!下次的內(nèi)容我還沒想好嘿嘿,可能還會介紹一部分控件。
那大家好好復(fù)習(xí)!
下篇見!
總結(jié)
以上是生活随笔為你收集整理的UWP 开发初阶 Chapter 6 - 简单介绍如何使用 C# 改变 XAML 控件的属性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mx150显卡能玩什么游戏
- 下一篇: 楚留香手游怎么凉了(汉典楚字的基本解释)