Xamarin.Forms 第14局:资源样式
2019-01-18 本文已影响2人
dotNET之家
总目录
前言
本文介绍资源样式:
一、样式
二、资源
环境
1.Visual Studio 2017
2.Xamarin.Froms 4.0.0.8055-pre1
3.Android 4.4(API 19)或更高版本
4.约定:XF代表Xamarin.Forms
内容
一、样式
样式(Style):在App开发中许多控件都具有相同外观,比如:Label,Entry,Button等控件的字体大小,颜色,位置等。如果对每个控件外观一一设置,会有大量重复代码,所以使用样式(Style)进行统一设置。
实现效果
Xaml方式
1.样式(Style)的主要属性及其他:
- TargetType:样式对应的目标类型,即:告诉样式应用于哪种类型的控件;
- x:Key:为样式添加Key标记,然后在指定控件中引用;
- BasedOn:继承现有的样式;
- Setters:通过往Setters容器中添加Setter对象,改变控件的外观。Setter需要指定Property(控件可绑定属性)和Value(属性值)两个属性。
- Behaviors:行为集合,行为知识点将在行为篇介绍;
- Triggers:触发器集合,触发器知识点将在触发器篇介绍;
2.样式分类:按Style有无x:key划分
- 显式样式:包含TargetType属性值和x:Key值。显式样式需在控件中引用,如本例Entry样式;
- 隐式样式:仅指定TargetType属性值。隐式样式默认应用到控件,如本例Label样式;
3.样式位置:按Style所在位置划分
- 控件级别样式:在控件级别定义定义样式,只能应用到控件,及其子级元素;
- 页面级别样式:在页面级别定义定义样式,只能应用到页面,及其子级元素;
- 全局级别样式:在全局级别定义定义样式,可以应用到整个应用程序;
如:本例中在ContentPage级别定义样式,在ContentPage中皆可使用;在Grid级别定义样式,在Grid中皆可使用。
4.样式继承:通过BasedOn集成自现有样式,如本例EntryStyleOrange继承自EntryStyle;
5.就近原则:控件优先应用最近的样式,远处样式会被覆盖。例如:本例中第二个Entry的TextColor属性,在控件中设置为Purple,便会覆盖EntryStyle中设置的Black。
6.在Xaml中,样式通常定义在资源字典(ResourceDictionary)中,本例中ContentPage.Resources和Grid.Resources都是ResourceDictionary类型。接下来介绍资源...
C#方式
3.png二、资源
资源(Resource):资源可以重复使用预定义的对象。常在资源中存储的对象有:颜色,字符串,样式,模板等。在样式中已经对控件资源和页面资源有所了解,接下来主要介绍全局资源。
实现效果
Xaml方式
在App.xaml中定义全局资源后,便可以在应用程序内使用。
C#方式:一般使用Xaml方式。
后语
下篇介绍行为,待续...