总目录
前言
本文介绍控件模板:
一、控件模板
二、模板绑定
环境
1.Visual Studio 2017
2.Xamarin.Froms 4.0.0.62955-pre2
3.Android 4.4(API 19)或更高版本
4.约定:XF代表Xamarin.Forms
内容
一、控件模板
控件模板:控件模板将页面与内容分离,使用它很容易实现主题设计。
下面简单实现日间/夜间主题切换。
实现效果
实现方式
在ControlTemplate中定义布局,以及布局内包含的控件,使用ContentPresenter作为自定义内容的占位符,即:自定义显示内容的显示位置;
1.在带有ControlTemplate属性的控件或页面上应用ControlTemplate。
2.带有ControlTemplate属性的控件或页面:
- ContentPage:内容页面;
- ContentView:内容视图;
- TemplatedPage:ContentPage的基类,没有Content属性,所以只能通过控件模板添加内容;
- TemplatedView:ContentView的基类,没有Content属性,所以只能通过控件模板添加内容;
二、模板绑定
模板绑定:模板绑定(TemplateBinding)可以让控件模板中的控件将数据绑定到公共属性,使之动态变化。
上述控件模板中的标题,写死在了控件模板中,下面通过模板绑定,使其绑定到其它属性,使之可以灵活修改。
实现效果
实现方式(主要代码)
新建MainPageViewModel类,并将MainPage的BindingContext绑定到它的实例。
1.使用TemplateBinding绑定到Title属性。
2.TemplateBinding类似于Binding,区别在于:TemplateBinding的源为控件模板所属的控件或页面。例如:本例中TemplateBinding的源为ContentView,而ContentView的Parent为ContentPage,所以模板绑定到Parent.BindingContext.Title,即:ContentPage的BindingContext的Title。
3.TemplateBinding只能在ControlTemplate中使用。
后语
下篇介绍数据模板,待续...