Xamarin XAML语言如何构建ControlTemplate控件模板

免费建站   2024年05月10日 4:04  

小编给大家分享一下Xamarin XAML语言如何构建ControlTemplate控件模板,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

控件模板ControlTemplate

ControlTemplate是从Xamarin.Forms 2.1.0开始被引入的。ControlTemplate被称为控件模板,它将页面的外观和内容进行了分离,从而让开发者可以更方便的创建基于主题的页面。

构建控件模板

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

1.应用程序级别构建

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

<Application>

<Application.Resources>

<ResourceDictionary>

< 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://.com/schemas/2014/forms"

xmlns:x="http://schemas.microsoft.com/winfx/2009/"

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控件模板。

看完了这篇文章,相信你对“Xamarin XAML语言如何构建ControlTemplate控件模板”有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

域名注册
购买VPS主机

您或许对下面这些文章有兴趣:                    本月吐槽辛苦排行榜

看贴要回贴有N种理由!看帖不回贴的后果你懂得的!


评论内容 (*必填):
(Ctrl + Enter提交)   

部落快速搜索栏

各类专题梳理

网站导航栏

X
返回顶部