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

2.在页面级别中构建控件模板

如果开发者要在页面级别中构建控件模板,首先必须将ResourceDictionary添加到页面中,然后在ResourceDictionary中实现模板的构建即可,其语法形式如下:

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

其中,Page表示的是页面以及页面的子类。KeyName用来指定一个字典键,此键指代的就是控件模板。

【示例14-4:ControlTemplateContentPage】以下将在内容页面中构建控件模板。代码如下:

  • <?xml version="1.0" encoding="utf-8" ?>
  • <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
  • xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
  • xmlns:local="clr-namespace:ControlTemplateContentPage"
  • x:Class="ControlTemplateContentPage.MainPage">
  • <ContentPage.Resources>
  • <ResourceDictionary>
  • <!--构建控件模板-->
  •  <ControlTemplate x:Key="TealTemplate">
  • <StackLayout VerticalOptions="CenterAndExpand"
  • Spacing="20"
  • Padding="20">
  • <Entry Placeholder="Username" />
  • <Entry Placeholder="Password"
  • IsPassword="True"/>
  • <Button Text="Click Here To Log In"   />
  • <ContentPresenter />
  • </StackLayout>
  •    </ControlTemplate>
  • </ResourceDictionary>
  • </ContentPage.Resources>
  • <ContentView x:Name="contentView"
  • Padding="0,20,0,0"
  •  ControlTemplate="{StaticResource TealTemplate}">
  • <Frame OutlineColor="Accent">
  • <Label Text="请在确认环境安全后,输入账号和对应的密码"
  • FontAttributes="Bold"
  • FontSize="18"/>
  • </Frame>
  • </ContentView>
  • </ContentPage>

此时运行程序,会看到如图14.18~14.20所示的效果。

Xamarin XAML语言教程构建ControlTemplate控件模板 (四)的更多相关文章

  1. Xamarin XAML语言教程构建ControlTemplate控件模板 (三)

    Xamarin XAML语言教程构建ControlTemplate控件模板 (三) (3)打开MainPage.xaml.cs文件,编写代码,实现主题的切换功能.代码如下: using System; ...

  2. Xamarin XAML语言教程构建ControlTemplate控件模板 (二)

    Xamarin XAML语言教程构建ControlTemplate控件模板 (二) (2)打开MainPage.xaml文件,编写代码,将构建的控件模板应用于ContentView中.代码如下: &l ...

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

    Xamarin XAML语言教程构建ControlTemplate控件模板 控件模板ControlTemplate ControlTemplate是从Xamarin.Forms 2.1.0开始被引入的 ...

  4. Xamarin XAML语言教程构建进度条ProgressBar

    Xamarin XAML语言教程构建进度条ProgressBar Xamarin XAML语言教程构建进度条ProgressBar,ProgressBar被称为进度条,它类似于没有滑块的滑块控件.进度 ...

  5. Xamarin XAML语言教程Xamarin.Forms中构建进度条

    Xamarin XAML语言教程Xamarin.Forms中构建进度条 ProgressBar被称为进度条,它类似于没有滑块的滑块控件.进度条总是水平放置的.本节将讲解如何使用进度条. 注意:进度条在 ...

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

    Xamarin XAML语言教程模板视图TemplatedView(二) (2)打开MainPage.xaml文件,编写代码,将构建的控件模板应用于中TemplatedView.代码如下: <? ...

  7. Xamarin XAML语言教程模板视图TemplatedView(一)

    Xamarin XAML语言教程模板视图TemplatedView(一) 模板视图TemplatedView 与模板页面相对的是TemplatedView,它被称为模板视图,它的功能和模板页面类似,也 ...

  8. Xamarin XAML语言教程模板页面TemplatedPage

    Xamarin XAML语言教程模板页面TemplatedPage 模板页面TemplatedPage 在上文中我们提到了TemplatedPage,它被称为模板页面,用来显示控件模版.Templat ...

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

    Xamarin XAML语言教程基本页面ContentPage占用面积 基本页面和基本视图都是在开发应用程序时最为常用的.本章将讲解有关基本页面ContentPag.基本视图ContentView.控 ...

随机推荐

  1. 【BZOJ 1930】 [Shoi2003]pacman 吃豆豆 最大费用最大流

    如果你知道他是网络流的话你就很快会想到一个最大费用最大流的模型,然后你发现可能T,然而你发现你只用增广两次,然后你就开心的打了出来,然后发现被稠密图里spfa的丧病时间复杂度坑了,还是会T.于是我就开 ...

  2. Hadoop 学习之MapReduce

    MapReduce充分利用了分而治之,主要就是将一个数据量比较大的作业拆分为多个小作业的框架,而用户需要做的就是决定拆成多少份,以及定义作业本身,用户所要做的操作少了又少,真是Very Good! 一 ...

  3. Educational Codeforces Round 58 (Rated for Div. 2) 题解

    Educational Codeforces Round 58 (Rated for Div. 2)  题目总链接:https://codeforces.com/contest/1101 A. Min ...

  4. itext转html为pdf遇到的问题

    记录一下使用itext将html文件转为pdf文件遇到的一些问题 1.中文不显示 原因:itext默认不支持中文 解决方法:引入中文字体 需要注意的是在java代码中设置好中文字体后,还需要在html ...

  5. Android百度地图的使用

    做关于位置或者定位的app的时候免不了使用地图功能,本人最近由于项目的需求需要使用百度地图的一些功能,所以这几天研究了一下,现写一下blog记录一下,欢迎大家评论指正! 一.申请AK(API Key) ...

  6. 图论:Stoer-Wagner算法

    利用Stoer-Wagner算法求无向图最小割 直接给出算法描述和过程实现: 算法步骤: . 设最小割cut=INF, 任选一个点s到集合A中, 定义W(A, p)为A中的所有点到A外一点p的权总和. ...

  7. [bzoj3223]文艺平衡树——splay

    题意 你应当编写一个数据结构,支持以下操作: 反转一个区间 题解 我们把在数组中的位置当作权值,这样原序列就在这种权值意义下有序,我们考虑使用splay维护. 对于操作rev[l,r],我们首先把l- ...

  8. Python用户登陆

    #!/usr/bin/env python # _*_ coding:UTF-8 _*_ # __auth__:Dahlhin import sys userinfo = r'userinfo.txt ...

  9. (转)Git冲突:commit your changes or stash them before you can merge. 解决办法

    用git pull来更新代码的时候,遇到了下面的问题: error: Your local changes to the following files would be overwritten by ...

  10. KVM基本概念

    在kvm技术中,应用到的两个东西:qemu和kvm.其中kvm负责cpu虚拟化和内存虚拟化,但是kvm不能模拟其他设备,qemu是模拟IO设备(网卡,磁盘),kvm加上qemu之后就能实现真正意义上的 ...