Win10系列:UWP界面布局基础12
画刷
画刷(Brush)用于为图形元素填充颜色。在XAML中,画刷有许多属性,其中较常使用的是Fill属性和Stroke属性,Fill用于填充图形的背景色,而Stroke用于设置图形的线条颜色。
在实际应用中,可以采用不同的填充方式填充背景色或设置线条颜色,以达到不同的视觉效果。这里我们简单介绍一下纯色画刷(SolidColorBrush)和线性渐变画刷(LinearGradientBrush),有关画刷的详细内容和图形绘制在后面章节中会单独介绍。
(1)纯色画刷
纯色画刷(SolidColorBrush)是画刷中最基本的填充方式,用来给元素填充某种单一纯色。在XAML语法中,SolidColorBrush元素的定义格式如下所示:
<SolidColorBrush Color="ColorName"/>
-or-
<SolidColorBrush Color="#RGB"/>
-or-
<SolidColorBrush Color="#RRGGBB"/>
其中,ColorName指的是颜色名称;RGB表示长度为3个字符的十六进制值,第一个字符指定颜色的R值,第二个字符指定G值,第三个字符指定B值,如#00F;RRGGBB表示长度为6个字符的十六进制值,用前两个字符指定颜色的R值,中间两个字符指定G值,最后两个字符指定B值,如#0000FF。
例如,在向一个页面中添加一个矩形时,在Rectangle.Fill属性元素中定义SolidColorBrush元素并通过Color属性设置矩形的填充色为红色,相应的XAML代码片段如下所示:
<Rectangle>
<Rectangle.Fill>
<SolidColorBrush Color="Red"/>
</Rectangle.Fill>
</Rectangle>
-或-
<Rectangle>
<Rectangle.Fill>
<SolidColorBrush Color="#F00"/>
</Rectangle.Fill>
</Rectangle>
-或-
<Rectangle>
<Rectangle.Fill>
<SolidColorBrush Color="#FF0000"/>
</Rectangle.Fill>
</Rectangle>
(2)线性渐变画刷
线性渐变就是沿着一条直线定义不同颜色之间的渐变,该直线的起点和终点分别由画刷的StartPoint属性和EndPoint属性设置。之后,线性渐变画刷就沿着这条直线来对图形元素填充颜色,展现颜色渐变的效果。
在XAML语法中,LinearGradientBrush元素的定义格式如下所示:
<LinearGradientBrush StartPoint="X,Y" EndPoint="X,Y">
<!--define GradientStops-->
<GradientStop Color="ColorValue" Offset="OffsetValue"/>
……
</LinearGradientBrush>
其中,StartPoint属性用于设置渐变线的起始点坐标,EndPoint属性用于设置终点坐标;X是二维坐标轴中的横坐标值,Y是纵坐标值;GradientStop是渐变画刷的渐变点对象,Color属性用于设置渐变点的颜色,Offset属性用于设置渐变点的开始位置,是一个数值类型。
在默认情况下,线性渐变是沿主对角线方向进行的,起点是被绘制区域的左上角点,终点是被绘制区域的右下角点。
3.3.4 动画
快速而流畅的动画能够为应用程序注入活力,在Windows 8中可以发现,动画已与用户体验完美融合,成为用户体验中不可或缺的一部分。例如,对于开始屏中的项目,当把鼠标放到某个应用程序的图标上时,相应的图标会凸显;当鼠标离开时,应用程序的图标又会还原成原状。当启动开始屏中的某个项目时,也会产生翻转的动画效果。因此,合理的使用动画效果能够让用户更直观地了解某一特定操作的结果,这种视觉反馈将使用户对应用程序的响应程度充满信心。
在XAML中,StoryBoard(演示图板)是动画的核心内容,通过StoryBoard可以定义各种动画效果,如插值动画、关键帧动画等。使用StoryBoard定义动画的语法格式如下所示:
<Storyboard ...>
<AnimationTypeName Storyboard.TargetName="objectName" Storyboard.TargetProperty="PropertyName" ...>
</AnimationTypeName>
</Storyboard>
其中,AnimationTypeName表示动画类型,如插值动画中的DoubleAnimation和ColorAnimation,DoubleAnimation动画可以作用于界面元素的Double类型的属性,而ColorAnimation动画可以作用于元素的Color类型的属性。无论是定义哪种类型的动画,都需要通过Storyboard的TargetName属性指定要使用动画的元素,通过TargetProperty属性设置在元素的哪个属性上使用动画,除了这两个属性之外,针对不同类型的动画还需要设置其他的属性。
有关各种动画类型的详细内容,将在第10章具体介绍,在此就不多细讲了。
Win10系列:UWP界面布局基础12的更多相关文章
- Win10系列:UWP界面布局基础1
随着技术的不断发展,使用者对应用程序的界面体验提出了更高的要求,为了应对越来越复杂的界面设计需求和有效的简化界面开发过程,微软公司在其应用程序的开发技术当中引入一套新的应用程序界面描述语言,这就是XA ...
- Win10系列:UWP界面布局基础8
路由事件 XAML不仅继承了传统的事件处理方式,还引入了一个增强型事件处理机制:路由事件(RoutedEvent).路由事件和传统事件的不同是:路由事件允许一个对象触发事件后,可以同时拥有多个事件接收 ...
- Win10系列:UWP界面布局基础7
2.附加属性 有一些XAML元素,其自身的属性大多是在其它的元素中声明和使用的,该元素本身却很少使用,这些在其他元素中声明和使用的属性被称为附加属性(Attached Properties).附加属性 ...
- Win10系列:UWP界面布局基础4
类型转换 前面讲到过,在定义元素时可以通过Attributes特性方式为其设置属性并为属性赋值,在实际开发中所赋予的值可能和属性本身的数据类型不相符,这时XAML解析器就会使用类型转换器(Type C ...
- Win10系列:UWP界面布局基础2
属性设置 在面向对象程序开发中,所提及的属性通常指的是对象的属性.在XAML代码中,定义元素时也可以为其设置属性,例如对于一个TextBox元素,有背景属性.宽度属性和高度属性等.为了满足实际应用的需 ...
- Win10系列:UWP界面布局基础11
样式继承 为了使样式便于维护及重复使用,可以在一个样式上引用其他的样式,这就是样式继承.样式继承的方法是:在Style元素的BasedOn属性上使用StaticResource标记扩展来引用被继承的样 ...
- Win10系列:UWP界面布局基础5
(2)编写后台代码访问资源 下面通过一个例子来演示如何编写后台代码引用资源.新建一个Windows应用商店的空白应用程序项目,将其命名为AccessResourceApplication,打开项目下的 ...
- Win10系列:UWP界面布局基础3
在实际项目开发中,为控件属性赋值时经常会遇到属性值在设计时处于未知状态,而只有在应用程序运行时才能获取到.这种情况下,直接赋值方法是无法满足的,可以使用XAML标记扩展(Markup Extensio ...
- Win10系列:UWP界面布局基础9
在XAML中,样式.模板.画笔和动画等都被看做是资源,它们最终的作用都是相同的,就是让设计人员可以使用这些资源创建更好的视觉效果,对其设计的产品外观进行标准化统一,那么如何使用这些资源并组织和重用呢, ...
随机推荐
- scala中option、None、some对象
转载:http://www.jianshu.com/p/95896d06a94d 1.option类型避免对象是空值,造成空指针异常. 2.None对象表示null,在没有对象返回时使用,some在有 ...
- HttpClient的POST请求返回302解决
HttpClient请求POST提示302,而且返回的response中的Localtion是我访问时使用的URL, 例如:我使用的URL是https://bbs.csdn.net?client_id ...
- centos 7 安装jdk1.8
首先下载jdk1.8 去官网下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151. ...
- js获取时间戳(new date()参数获取)
当获取截止到某一个时间点的时间戳时: 例如:到 2018-03-15 11:03:55 这个时间点的时间戳的时候 正确的写法: var data = new Date("2018/03/15 ...
- 优雅地记录Python程序日志1:logging模块简介
本文摘自:https://zhuanlan.zhihu.com/p/31893724 本篇涉及: logging模块的调用: 保存log日志为文件: 调整输入日志等级: 修改日志消息格式: 前言 在使 ...
- Java访问ActiveMQ
1.下载安装ActiveMQ 下载可以去官网下载:http://activemq.apache.org/download.html.我们这里使用windows测试,所以下载windows版本即可. 2 ...
- [mybatis-spring] Transaction 事务/事务处理/事务管理器
使用mybatis-spring的主要原因之一就是: mybatis-spring允许mybatis参与到spring 事务中. mybatis-spring leverage[use (someth ...
- <山月记>:中岛敦 -选段
因为害怕自己并非明珠而不敢刻苦琢磨,又因为有几分相信自己是明珠,而不能与瓦砾碌碌为伍,遂逐渐远离世间,疏避人群,结果在内心不断地用愤懑和羞怒饲育着自己懦弱的自尊心.世上每个人都是驯兽师,而那匹猛兽,就 ...
- idea ----> 使用idea工具整合mybaiti时出现的问题总结
使用idea测试mabtis实例时出现 java.lang.IllegalArgumentException: Mapped Statements collection does not conta ...
- Selenium自动化测试框架入门整理
关注嘉为科技,获取运维新知 本文主要针对Selenium自动化测试框架入门整理,只涉及总体功能及框架要点介绍说明,以及使用前提技术基础要求整理说明.作为开发人员.测试人员入门参考. 本文参考:Se ...