Xamarin.Forms 第14局:资源样式

总目录


前言

本文介绍资源样式:
一、样式
二、资源

环境

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)进行统一设置。

实现效果
Xamarin.Forms 第14局:资源样式_第1张图片
Xaml方式
Xamarin.Forms 第14局:资源样式_第2张图片

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#方式
Xamarin.Forms 第14局:资源样式_第3张图片
3.png

二、资源

资源(Resource):资源可以重复使用预定义的对象。常在资源中存储的对象有:颜色,字符串,样式,模板等。在样式中已经对控件资源和页面资源有所了解,接下来主要介绍全局资源。

实现效果
Xamarin.Forms 第14局:资源样式_第4张图片
Xaml方式
Xamarin.Forms 第14局:资源样式_第5张图片
Xamarin.Forms 第14局:资源样式_第6张图片

在App.xaml中定义全局资源后,便可以在应用程序内使用。

C#方式:一般使用Xaml方式。

后语

下篇介绍行为,待续...


总目录

你可能感兴趣的:(Xamarin.Forms 第14局:资源样式)