UWP 开发初阶 Chapter 6 - 简单介绍如何使用 C# 改变 XAML 控件的属性

上篇回顾

上篇介绍了通过 this.Frame.navigate(typeof(PageName)); 实现的全局页面导航,以及通过在 XAML 中建立 Frame ,并通过 frameName.navigate(typeof(PageName)); 实现的局部页面导航。

本篇正文

本篇将讲述如何通过 C# 设置或改变 XAML 中控件的属性。例如常用的 TextBlock 等等。

回顾一下:

先前的文章已经涉及到 Name 这个属性,给一个 XAML 控件取了个名字过后,我们就可以在 .xaml.cs 文件中引用它啦!这样也就可以改变了它的一些相关属性。

我们先为我们接下来的任务,做一些基础,把基本的东西写入 .xaml ,我们接下来要通过按钮点击,来改变一个 TextBlock 的各种属性。

  • 下面,大家自己动手。在一个空白 MainPage.xaml 里的 Grid 里面写一个 StackPanel ,而 StackPanel 里面先放一个 TextBlock 。代码如下:

    <Grid>
        <StackPanel>
            <TextBlock Name="myTextBlock"/>
        </StackPanel>
    </Grid>
    

好了,准备工作完成了,我们的 TextBlock 都只给它一个名字,其他我们通过 C# 来实现!

注意:以下为了课程方便,未给 Button 设置名字,正式开发中,请养成给他们取易于区分的名字的好习惯

  1. 任务一:通过点击按钮,在 TextBlock 里面显示 “Hello, world!”

    • 我们先在 StackPanel 里面加一个按钮,同时新建一个点击事件,代码如下:

      <Button Content="Click to show text" Click="Button_Click"/>
      
    • 然后,找到 vs 帮你新建的事件,在里面写如下代码:

      提示:将光标移到新建的事件的名字上,按 F12 可以快速跳转至事件定义。

      myTextBlock.Text = "Hello, world!";
      

      解释:myTextBlock 就是我们之前在 .xaml 文件中定义的一个控件,而 myTextBlock.Text 就是这个控件里面的文字,这个属性的类型为 string

    • 好了!第一个任务完成了,我们先慢点编译,继续做下一个任务。

  2. 任务二:通过点击按钮,改变 TextBlock 里面的文字

    • 我们先依旧在 StackPanel 里面新建一个按钮,代码如下:

      <Button Content="Click to change text" Click="Button_Click_1"/>
      
    • 然后转到新建事件,写如下代码:

      myTextBlock.Text = "This is UWP Development Tutorial!";
      
    • 这时候我们就将 TextBlock 里面的文字改为新的文字了!我们再进行下一步。

  3. 任务三:通过点击按钮,改变 TextBlock 里面文字的颜色

    • 依旧新建一个按钮,XAML 代码就不再赘述了,一个思路。

    • 然后转到新建的事件里面,写如下代码:

      myTextBlock.Foreground = new SolidColorBrush(Colors.Red);
      

      解释:大家应该还记得,Foreground 表示的是 TextBlock 里面字的颜色,而这个 Foreground 属性的类型为 Brush,因此我们需要新建一个 SolidColorBrush,而后面的括号里面的 Colors 就是我们在 XAML 中编写 Foreground 的时候那一串颜色。(注意:Colors 需要 using Windows.UI)

      补充:其实 SolidColorBrush 只是众多 Brush 中的一种。还有 LinearGradientBrush,也就是我们熟知的渐变色。还有 AcrylicBrush,这也就是微软先前发布的 Fluent Design 中的一个重要元素,亚克力!

    • 这时候,补充一点,大家上手的话会发现,Colors 里面的颜色都是一些微软帮你设定好的,而你却想通过 RGB 来设定颜色,这时候你可以通过这行代码。

      myTextBlock.Foreground = new SolidColorBrush(Color.FromArgb(255, 255, 0, 0));
      

      注意:这里面是 Color 而不是 Colors,同时 FromArgb 后的括号里面,有四个变量,其实有一定编程基础的朋友大概都能猜到,第一个 A 值便是透明度,而不同于 Java 中的阿尔法值区间是 0 - 1,这个 A 的值的区间是 0 - 255,其中值越小,越透明。而剩下的依次为 R、G、B

    • 颜色的变化也完成啦!下一步!

  4. 任务四:通过点击按钮改变字体大小

    • 依旧新建一个按钮啦!

    • 然后在 csharp 文件中的事件定义处,写下如下代码:

      myTextBlock.FontSize = 30;
      

      解释:FontSize 的这个属性的类型为 double,因此这步操作很简单。补充个知识,如果你不去设置 FontSize,那默认是 15,所以这里面我们相当于把字变大了。

    • 好了!下一步!

  5. 任务五:通过点击按钮,加粗字体

    • 新建按钮!

    • 然后找到找到事件定义:

      myTextBlock.FontWeight = FontWeights.Bold;
      

      解释:.FontWeight 里面就是使得字体加粗,或者变细等等,而注意赋值号右边是 FontWeights,而不是 FontWeight ,其中 FontWeights 需要 using Windows.UI.Text

    • 好啦!

  6. 好啦!今天的任务就暂告一个段落!快去编译试试看吧!效果如下:

    [站外图片上传中...(image-f7fe0e-1531829416402)]

结语

其实我们今天讲的只是冰山一角,但凡是这个控件有的属性,我们都可以通过 C# 进行更改,只不过可能有时候会比较繁琐,如果大家愿意,可以自己去 vs 上试一试其他的属性是怎么更改的,不明白的也可以随时问我,或在下方留言!下次的内容我还没想好嘿嘿,可能还会介绍一部分控件。

那大家好好复习!

下篇见!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,490评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,581评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,830评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,957评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,974评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,754评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,464评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,847评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,995评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,137评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,819评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,482评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,023评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,149评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,409评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,086评论 2 355

推荐阅读更多精彩内容