Xamarin XAML语言教程构建ControlTemplate控件模板

Xamarin XAML语言教程构建ControlTemplate控件模板

控件模板ControlTemplate

ControlTemplate是从Xamarin.Forms 2.1.0开始被引入的。ControlTemplate被称为控件模板,它将页面的外观和内容进行了分离,从而让开发者可以更方便的创建基于主题的页面。本节将讲解控件模板相关的内容,其中包括构建控件模板以及控件模板的模板绑定等内容。

构建控件模板

控件模板可以在应用程序级别中构建,也可以在页面级别中构建。以下将对这两个构建方式进行讲解。

1.应用程序级别构建

如果开发者要在应用程序级别构建控件模板,首先必须将ResourceDictionary添加到App类中,然后在ResourceDictionary中实现模板的构建。其语法形式如下:

  • <Application>
  • <Application.Resources>
  • <ResourceDictionary>
  • <ControlTemplate x:Key="KeyName">
  • ……
  • </ControlTemplate>
  • </ResourceDictionary>
  • </Application.Resources>
  • </Application>

其中,KeyName指定一个字典键,用来指代控件模板。

构建好模板后,我们需要将这个模板控件显示出来,此时就需要可以模板化的视图。在这些视图中都会存在一个ControlTemplate属性。将此属性设置为创建的控件模板后,控件模板就可以进行显示了。在Xamarin.Forms目前只有4个视图包含ControlTemplate属性,这4个视图如下:

  • ContentPage:内容页面
  • ContentView:内容视图
  • TemplatedPage:模板页面
  • TemplatedView:模板视图

【示例14-3:ControlTemplateDemo】下面将在应用程序级别中构建控件模板,实现应用程序主题的切换。具体的操作步骤如下:

(1)打开App.xaml文件,编写代码,实现在应用程序级别中构建控件模板,代码如下:

  • <?xml version="1.0" encoding="utf-8" ?>
  • <Application xmlns="http://xamarin.com/schemas/2014/forms"
  • xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
  • x:Class="ControlTemplateDemo.App">
  • <Application.Resources>
  • <ResourceDictionary>
  • <!--构建控件模板-->
  • <ControlTemplate x:Key="TealTemplate">
  • <Grid>
  • <Grid.RowDefinitions>
  • <RowDefinition Height="0.1*" />
  • <RowDefinition Height="0.8*" />
  • <RowDefinition Height="0.1*" />
  • </Grid.RowDefinitions>
  • <Grid.ColumnDefinitions>
  • <ColumnDefinition Width="0.05*" />
  • <ColumnDefinition Width="0.95*" />
  • </Grid.ColumnDefinitions>
  • <BoxView Grid.ColumnSpan="2"
  • Color="Teal" />
  • <Label Grid.Column="1"
  • Text="Knowledge is power."
  • TextColor="White"
  • FontSize="18"
  • VerticalOptions="Center" />
  • <ContentPresenter Grid.Row="1"
  • Grid.ColumnSpan="2" />
  • <BoxView Grid.Row="2"
  • Grid.ColumnSpan="2"
  • Color="Teal" />
  • <Label Grid.Row="2"
  • Grid.Column="1"
  • Text="Xamarin.Froms XAML"
  • TextColor="White"
  • FontSize="18"
  • VerticalOptions="Center" />
  • </Grid>
  •    </ControlTemplate>
  • <!--构建控件模板-->
  •  <ControlTemplate x:Key="AquaTemplate">
  • <Grid>
  • <Grid.RowDefinitions>
  • <RowDefinition Height="0.1*" />
  • <RowDefinition Height="0.8*" />
  • <RowDefinition Height="0.1*" />
  • </Grid.RowDefinitions>
  • <Grid.ColumnDefinitions>
  • <ColumnDefinition Width="0.05*" />
  • <ColumnDefinition Width="0.95*" />
  • </Grid.ColumnDefinitions>
  • <BoxView Grid.ColumnSpan="2"
  • Color="Aqua" />
  • <Label Grid.Column="1"
  • Text="Knowledge is power."
  • TextColor="Blue"
  • FontSize="18"
  • VerticalOptions="Center" />
  • <ContentPresenter Grid.Row="1"
  • Grid.ColumnSpan="2" />
  • <BoxView Grid.Row="2"
  • Grid.ColumnSpan="2"
  • Color="Aqua" />
  • <Label Grid.Row="2"
  • Grid.Column="1"
  • Text="Xamarin.Froms XAML"
  • TextColor="Blue"
  • FontSize="18"
  • VerticalOptions="Center" />
  • </Grid>
  •            </ControlTemplate>
  • </ResourceDictionary>
  • </Application.Resources>
  • </Application>

在此代码中,我们构建了两个控件模板,一个为TealTemplate控件模板,另一为AquaTemplate控件模板。

时间: 2024-10-10 03:19:21

Xamarin XAML语言教程构建ControlTemplate控件模板的相关文章

Xamarin XAML语言教程构建ControlTemplate控件模板 (四)

Xamarin XAML语言教程构建ControlTemplate控件模板 (四) 2.在页面级别中构建控件模板 如果开发者要在页面级别中构建控件模板,首先必须将ResourceDictionary添加到页面中,然后在ResourceDictionary中实现模板的构建即可,其语法形式如下: <Page> <Page.Resources> <ResourceDictionary> <ControlTemplate x:Key="KeyName"

Xamarin XAML语言教程模板视图TemplatedView(二)

Xamarin XAML语言教程模板视图TemplatedView(二) (2)打开MainPage.xaml文件,编写代码,将构建的控件模板应用于中TemplatedView.代码如下: <?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://s

Xamarin XAML语言教程基本页面ContentPage占用面积

Xamarin XAML语言教程基本页面ContentPage占用面积 基本页面和基本视图都是在开发应用程序时最为常用的.本章将讲解有关基本页面ContentPag.基本视图ContentView.控件模板ControlTemplate.模板页面TemplatedPage和模板视图TemplatedView等内容. 基本页面ContentPage 在Xamarin.Forms中,每个App的界面都是一个页面Page.页面的种类有很多种.其中,最常见.最为基础的页面为ContentPage页面,也

Xamarin XAML语言教程ContentView视图作为自定义视图的父类

Xamarin XAML语言教程ContentView视图作为自定义视图的父类 自定义视图的父类:ContentView视图可以作为自定义视图的父类. [示例14-2]以下将自定义一个颜色视图.具体的操作步骤如下: (1)创建一个Forms Xaml View文件,命名为ColorView. (2)打开ColorView.xaml文件,编写代码,构建自定义颜色视图.代码如下: <?xml version="1.0" encoding="UTF-8"?>

Xamarin XAML语言教程XAML文件结构与解析XAML

Xamarin XAML语言教程XAML文件结构与解析XAML XAML文件结构 在上文中,我们创建XAML文件后,会看到类似图1.16所示的结构 图1.16  结构 其中,.xaml文件和.xaml.cs文件就是XAML文件的结构.以下就是对这两个文件的介绍. .xaml文件中包含的就是XAML代码,实际上就是XML语法.官方的说法:它是一个声明对象的语言,为我们创建对象提供便捷的一种方式.与HTML类似,特点是用来描述用户接口 (UI)内容. 通常我们把与.xaml文件关联的.xaml.cs

Xamarin XAML语言教程基本视图ContentViewg构架范围框架

Xamarin XAML语言教程基本视图ContentViewg构架范围框架 ContentView视图基本上有三个作用,下面依次介绍. (1)范围框架:ContentView视图可以构建一个范围框架,用来约束其中的子元素. [示例14-1:ContentViewScopeFrame]以下将使用ContentView来构建一个范围框架,以此来约束其子元素.代码如下: <?xml version="1.0" encoding="utf-8" ?> <

Xamarin XAML语言教程Xamarin.Forms中改变活动指示器颜色

Xamarin XAML语言教程Xamarin.Forms中改变活动指示器颜色 在图12.10~12.12中我们会看到在各个平台下活动指示器的颜色是不一样的.Android的活动指示器默认是深粉色的:iOS的活动指示器是灰色的:Windows Phone的活动指示器是蓝色的.如果开发者想要让各个平台下活动指示器的颜色统一,可以使用ActivityIndicator定义的Color属性,其语法形式如下: <ActivityIndicator Color="activityIndicatorC

WPF中的ControlTemplate(控件模板)(转)

原文地址 http://www.cnblogs.com/zhouyinhui/archive/2007/03/28/690993.html WPF中的ControlTemplate(控件模板)                                                                                                                        周银辉 WPF包含数据模板和控件模板,其中控件模板又包括Contro

Xamarin XAML语言教程基础语法篇大学霸

前  言 Xamarin是一个跨平台开发框架.它可以用来开发iOS.Android.Windows Phone和Mac的应用程序.使用Xamarin框架中的Forms子框架,用户可以一次性的开发多个平台的应用,如iOS.Android.Windows Phone,从而节省大量的开发时间. 在Xamarin.Forms中,用户可以直接使用XAML语言直接进行界面设计.这样,就可以将界面和逻辑代码分离,使得应用程序的结构更加清晰.为了满足大家的开发需求,本教程着眼于Xamarin.Forms开发,详