温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2021-12-21 13:37:08 来源:亿速云 阅读:203 作者:小新 栏目:互联网科技

小编给大家分享一下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-3ControlTemplateDemo】下面将在应用程序级别中构建控件模板,实现应用程序主题的切换。具体的操作步骤如下:

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

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI