上篇回顧
上篇介紹了通過(guò) this.Frame.navigate(typeof(PageName));
實(shí)現(xiàn)的全局頁(yè)面導(dǎo)航,以及通過(guò)在 XAML 中建立 Frame
酪耳,并通過(guò) frameName.navigate(typeof(PageName));
實(shí)現(xiàn)的局部頁(yè)面導(dǎo)航浓恳。
本篇正文
本篇將講述如何通過(guò) C# 設(shè)置或改變 XAML 中控件的屬性。例如常用的 TextBlock
等等碗暗。
回顧一下:
先前的文章已經(jīng)涉及到
Name
這個(gè)屬性颈将,給一個(gè) XAML 控件取了個(gè)名字過(guò)后,我們就可以在.xaml.cs
文件中引用它啦言疗!這樣也就可以改變了它的一些相關(guān)屬性晴圾。
我們先為我們接下來(lái)的任務(wù),做一些基礎(chǔ)噪奄,把基本的東西寫入 .xaml
死姚,我們接下來(lái)要通過(guò)按鈕點(diǎn)擊沾凄,來(lái)改變一個(gè) TextBlock
的各種屬性。
-
下面知允,大家自己動(dòng)手撒蟀。在一個(gè)空白
MainPage.xaml
里的Grid
里面寫一個(gè)StackPanel
,而StackPanel
里面先放一個(gè)TextBlock
温鸽。代碼如下:<Grid> <StackPanel> <TextBlock Name="myTextBlock"/> </StackPanel> </Grid>
好了保屯,準(zhǔn)備工作完成了,我們的 TextBlock
都只給它一個(gè)名字涤垫,其他我們通過(guò) C# 來(lái)實(shí)現(xiàn)姑尺!
注意:以下為了課程方便,未給 Button
設(shè)置名字蝠猬,正式開發(fā)中切蟋,請(qǐng)養(yǎng)成給他們?nèi)∫子趨^(qū)分的名字的好習(xí)慣
-
任務(wù)一:通過(guò)點(diǎn)擊按鈕,在
TextBlock
里面顯示 “Hello, world!”-
我們先在
StackPanel
里面加一個(gè)按鈕榆芦,同時(shí)新建一個(gè)點(diǎn)擊事件柄粹,代碼如下:<Button Content="Click to show text" Click="Button_Click"/>
-
然后,找到 vs 幫你新建的事件匆绣,在里面寫如下代碼:
提示:將光標(biāo)移到新建的事件的名字上驻右,按
F12
可以快速跳轉(zhuǎn)至事件定義。myTextBlock.Text = "Hello, world!";
解釋:
myTextBlock
就是我們之前在.xaml
文件中定義的一個(gè)控件崎淳,而myTextBlock.Text
就是這個(gè)控件里面的文字堪夭,這個(gè)屬性的類型為string
。 好了拣凹!第一個(gè)任務(wù)完成了森爽,我們先慢點(diǎn)編譯,繼續(xù)做下一個(gè)任務(wù)嚣镜。
-
-
任務(wù)二:通過(guò)點(diǎn)擊按鈕爬迟,改變
TextBlock
里面的文字-
我們先依舊在
StackPanel
里面新建一個(gè)按鈕,代碼如下:<Button Content="Click to change text" Click="Button_Click_1"/>
-
然后轉(zhuǎn)到新建事件祈惶,寫如下代碼:
myTextBlock.Text = "This is UWP Development Tutorial!";
這時(shí)候我們就將
TextBlock
里面的文字改為新的文字了雕旨!我們?cè)龠M(jìn)行下一步。
-
-
任務(wù)三:通過(guò)點(diǎn)擊按鈕捧请,改變
TextBlock
里面文字的顏色依舊新建一個(gè)按鈕凡涩,XAML 代碼就不再贅述了,一個(gè)思路疹蛉。
-
然后轉(zhuǎn)到新建的事件里面活箕,寫如下代碼:
myTextBlock.Foreground = new SolidColorBrush(Colors.Red);
解釋:大家應(yīng)該還記得,
Foreground
表示的是TextBlock
里面字的顏色可款,而這個(gè)Foreground
屬性的類型為Brush
育韩,因此我們需要新建一個(gè)SolidColorBrush
克蚂,而后面的括號(hào)里面的Colors
就是我們?cè)?XAML 中編寫Foreground
的時(shí)候那一串顏色筋讨。(注意:Colors
需要using Windows.UI
)埃叭。補(bǔ)充:其實(shí)
SolidColorBrush
只是眾多Brush
中的一種。還有LinearGradientBrush
悉罕,也就是我們熟知的漸變色赤屋。還有AcrylicBrush
,這也就是微軟先前發(fā)布的 Fluent Design 中的一個(gè)重要元素壁袄,亞克力类早! -
這時(shí)候,補(bǔ)充一點(diǎn)嗜逻,大家上手的話會(huì)發(fā)現(xiàn)涩僻,
Colors
里面的顏色都是一些微軟幫你設(shè)定好的,而你卻想通過(guò) RGB 來(lái)設(shè)定顏色栈顷,這時(shí)候你可以通過(guò)這行代碼逆日。myTextBlock.Foreground = new SolidColorBrush(Color.FromArgb(255, 255, 0, 0));
注意:這里面是
Color
而不是Colors
,同時(shí)FromArgb
后的括號(hào)里面妨蛹,有四個(gè)變量屏富,其實(shí)有一定編程基礎(chǔ)的朋友大概都能猜到晴竞,第一個(gè) A 值便是透明度蛙卤,而不同于 Java 中的阿爾法值區(qū)間是 0 - 1,這個(gè) A 的值的區(qū)間是 0 - 255噩死,其中值越小颤难,越透明。而剩下的依次為 R已维、G行嗤、B 顏色的變化也完成啦!下一步垛耳!
-
任務(wù)四:通過(guò)點(diǎn)擊按鈕改變字體大小
依舊新建一個(gè)按鈕啦栅屏!
-
然后在 csharp 文件中的事件定義處,寫下如下代碼:
myTextBlock.FontSize = 30;
解釋:
FontSize
的這個(gè)屬性的類型為double
堂鲜,因此這步操作很簡(jiǎn)單栈雳。補(bǔ)充個(gè)知識(shí),如果你不去設(shè)置FontSize
缔莲,那默認(rèn)是 15哥纫,所以這里面我們相當(dāng)于把字變大了。 好了痴奏!下一步蛀骇!
-
任務(wù)五:通過(guò)點(diǎn)擊按鈕厌秒,加粗字體
新建按鈕!
-
然后找到找到事件定義:
myTextBlock.FontWeight = FontWeights.Bold;
解釋:
.FontWeight
里面就是使得字體加粗擅憔,或者變細(xì)等等鸵闪,而注意賦值號(hào)右邊是FontWeights
,而不是FontWeight
暑诸,其中FontWeights
需要using Windows.UI.Text
岛马。 好啦!
-
好啦屠列!今天的任務(wù)就暫告一個(gè)段落啦逆!快去編譯試試看吧!效果如下:
[站外圖片上傳中...(image-f7fe0e-1531829416402)]
結(jié)語(yǔ)
其實(shí)我們今天講的只是冰山一角笛洛,但凡是這個(gè)控件有的屬性夏志,我們都可以通過(guò) C# 進(jìn)行更改,只不過(guò)可能有時(shí)候會(huì)比較繁瑣苛让,如果大家愿意沟蔑,可以自己去 vs 上試一試其他的屬性是怎么更改的,不明白的也可以隨時(shí)問(wèn)我狱杰,或在下方留言瘦材!下次的內(nèi)容我還沒(méi)想好嘿嘿,可能還會(huì)介紹一部分控件仿畸。
那大家好好復(fù)習(xí)食棕!
下篇見!