博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Win10系列:UWP界面布局基础9
阅读量:6840 次
发布时间:2019-06-26

本文共 2125 字,大约阅读时间需要 7 分钟。

在XAML中,样式、模板、画笔和动画等都被看做是资源,它们最终的作用都是相同的,就是让设计人员可以使用这些资源创建更好的视觉效果,对其设计的产品外观进行标准化统一,那么如何使用这些资源并组织和重用呢,本节就来讲解样式、模板、画笔和动画的概念,以及它们的使用方法。

3.3.1 样式

在开发应用程序过程中,添加一个控件时可以通过设置控件的属性来控制它的显示外观。例如,对于TextBox文本框,可以通过设置字体属性得到不同的文本显示效果,这些属性包括FontFamily(字体类型)、FontSize(字体大小)、FontStyle(字形)和Foreground(字体颜色)等。尽管设计人员可以对应用程序的外观逐个进行大量的自定义操作,但他们还是需要一个功能强大的样式设置,以便在应用程序内部和应用程序之间共享和维护外观。

1.样式的定义及引用

在XAML中,任何派生自或的元素下都可以定义样式。通常情况是将样式作为资源定义在元素的Resources属性元素下,语法格式如下所示:

<object.Resources>

<Style TargetType="ControlTypeName" x:Key="StyleKey">

<Setter Property="AttributeName" Value="AttributeValue">

</Setter>

...

</Style>

</object.Resources>

在上述语法格式中:

  • TargetType属性,用于指定要设置样式的控件类型,属性值是派生自FrameworkElementFrameworkContentElement的类型,如果试图将样式应用到与TargetType属性值不匹配的控件,就会发生异常。
  • x:Key属性,用来设置样式的键,以便通过这个键来引用该样式。
  • Setter元素用来设置控件的属性,一个Style可以有多个Setter,每个Setter元素都需要一个Property字段和一个Value字段,这两个字段分别表示控件的属性和为该属性设置的值。其中,设置Value字段的方式可以参考3.2.3节中介绍的属性设置方法,这里就不具体介绍了。

例如,在Page.Resources属性元素下定义一个页面级别的按钮样式资源,样式资源的键为ButtonStyle,并在Setter元素中设置按钮的FontFamily属性、FontStyle属性和FontSize属性的值分别为楷体、Italic和10像素,对应的XAML代码片段如下所示:

<Page.Resources>

<Style TargetType="Button" x:Key="ButtonStyle">

<Setter Property="FontFamily" Value="楷体"/>

<Setter Property="FontStyle" Value="Italic"/>

<Setter Property="FontSize" Value="10"/>

</Style>

</Page.Resources>

在前面章节中提到,资源的定义位置不同,其有效使用范围也会不同,当把样式定义为资源时,它同样遵循这样的规则。在XAML应用程序中,样式作为资源时的作用范围包括如下情况:

  • 如果在Application.Resource属性元素中定义样式,则该样式可在应用程序中的任何位置使用。
  • 如果在Page.Resource属性元素中定义样式,则该样式只可在当前页面中使用。
  • 如果在控件的Resource属性元素中定义,则只对该控件的子孙控件有效,如Canvas控件。
  • 如果在Application.Resource属性元素和Page.Resource属性元素中同时定义了相同的样式,则在页面中定义的样式将覆盖Application.Resource属性元素中定义的样式。
  • Application.Resource属性元素中定义的样式将覆盖在单独的资源字典文件中定义的相同样式。

除了引用已经定义好的样式资源外,还可以在添加控件时通过定义Style属性元素直接为其定义样式,这时的样式仅作用于该控件本身。例如在向一个页面中添加一个按钮时,在Button.Style属性元素中定义Style元素,并在Style元素中设置按钮的文本颜色为红色,相应的XAML代码片段如下所示:

<Button Content="按钮" Width="100" Height="40">

<Button.Style>

<Style TargetType="Button">

<Setter Property="Foreground" Value="Red"/>

</Style>

</Button.Style>

</Button>

样式被定义成资源后,像其他资源一样,可以根据样式资源的键使用StaticResource标记扩展来引用相应的样式,然后赋值给元素的Style属性,语法格式如下所示:

<object Style="{StaticResource StyleKey}" ...> ... </object>

转载地址:http://ghbul.baihongyu.com/

你可能感兴趣的文章
Locky勒索软件是如何利用DGA的?
查看>>
打造自己的 Python 编码环境
查看>>
使用Azure托管磁盘简化云存储管理
查看>>
你需要知道知道这几个因素会不利于关键词排名优化
查看>>
《Cocos2D权威指南》——1.5 在设备上运行HelloCocos2D项目
查看>>
东莞市政府常务会议审议通过《东莞市大数据发展实施方案》
查看>>
AI 对冲基金创造新货币,要将华尔街“开源”
查看>>
中国不允许信息数据随意离境,或影响跨国公司
查看>>
如何消除视频监控出现的干扰?
查看>>
东芝发布OCZ TL100系列入门级SATA SSD新品:接棒TR150
查看>>
解决IT流程自动化的Brocade Workflow Composer长什么样?
查看>>
苹果还要与雅虎搜索合作?梅耶尔已经确认
查看>>
爱立信携Trukcell进行5G测试 实现24.7Gbps下载速度
查看>>
云翌通信联合方位、鼎信在杭州、北京的产品交流会圆满结束
查看>>
模块化数据中心的多种形式
查看>>
智能家居何以成CES必争之地?
查看>>
爱立信前CEO卫翰思加入Verizon 负责网络和技术部门
查看>>
来看看Win32资源监视器在Fluent Design设计语言下的样子
查看>>
物联网再升级 物联智慧MWC推新IoT方案
查看>>
云存储呼唤软实力
查看>>