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

自定义视图的父类:ContentView视图可以作为自定义视图的父类。

【示例14-2】以下将自定义一个颜色视图。具体的操作步骤如下:

(1)创建一个Forms Xaml View文件,命名为ColorView。

(2)打开ColorView.xaml文件,编写代码,构建自定义颜色视图。代码如下:

  • <?xml version="1.0" encoding="UTF-8"?>
  • <ContentView xmlns="http://xamarin.com/schemas/2014/forms"
  • xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
  • x:Class="ContentViewCustomControls.ColorView">
  • <Frame OutlineColor="Accent">
  • <StackLayout Orientation="Horizontal">
  • <BoxView x:Name="boxView"
  • WidthRequest="70"
  • HeightRequest="70" />
  • <StackLayout>
  • <Label x:Name="colorNameLabel"
  • FontSize="Large"
  • VerticalOptions="CenterAndExpand" />
  • <Label x:Name="colorValueLabel"
  • VerticalOptions="CenterAndExpand" />
  • </StackLayout>
  • </StackLayout>
  • </Frame>
  • </ContentView>

(3)打开ColorView.xaml.cs文件,编写代码,实现一些与颜色视图相关的属性。代码如下:

  • using System;
  • using System.Collections.Generic;
  • using System.Linq;
  • using System.Text;
  • using System.Threading.Tasks;
  • using Xamarin.Forms;
  • namespace ContentViewCustomControls
  • {
  • public partial class ColorView : ContentView
  • {
  • string colorName;
  • ColorTypeConverter colorTypeConv = new ColorTypeConverter();
  • public ColorView()
  • {
  • InitializeComponent();
  • }
  • //颜色名称
  •      public string ColorName
  •         {
  •             set
  •             {
  •                 colorName = value;
  •                 colorNameLabel.Text = value;
  •                 Color color = (Color)colorTypeConv.ConvertFromInvariantString(colorName);
  •                 boxView.Color = color;
  •                 colorValueLabel.Text = String.Format("{0:X2}-{1:X2}-{2:X2}",
  •                 (int)(255 * color.R),
  •                 (int)(255 * color.G),
  •                 (int)(255 * color.B));
  •             }
  •             get
  •             {
  •                 return colorName;
  •             }
  •         }
  • }
  • }

(4)打开MainPage.xaml文件,编写代码,通过颜色视图实现对内容页面的布局。代码如下:

  • <?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:ContentViewCustomControls"
  • x:Class="ContentViewCustomControls.MainPage">
  • <ContentPage.Padding>
  • <OnPlatform x:TypeArguments="Thickness"
  • iOS="0, 20, 0, 0" />
  • </ContentPage.Padding>
  • <StackLayout Padding="6, 0">
  •  <local:ColorView ColorName="Aqua" />
  •     <local:ColorView ColorName="Black" />
  •     <local:ColorView ColorName="Blue" />
  •     <local:ColorView ColorName="Fuchsia" />
  •     <local:ColorView ColorName="Gray" />
  • </StackLayout>
  • </ContentPage>

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

(5)构建更复杂的布局模式:在ContentView中可以包含视图,还可以包括布局,从而构建更为复杂的布局模式。

Xamarin XAML语言教程ContentView视图作为自定义视图的父类的更多相关文章

  1. Xamarin XAML语言教程基本视图ContentView

    Xamarin XAML语言教程基本视图ContentView 基本视图ContentView 视图是用来呈现具体内容,根据呈现内容不同,使用的视图也不同.其中,最常用的视图为ContentView视 ...

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

    Xamarin XAML语言教程基本视图ContentViewg构架范围框架 ContentView视图基本上有三个作用,下面依次介绍. (1)范围框架:ContentView视图可以构建一个范围框架 ...

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

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

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

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

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

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

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

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

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

    Xamarin XAML语言教程基础语法篇大学霸 前  言 Xamarin是一个跨平台开发框架.它可以用来开发iOS.Android.Windows Phone和Mac的应用程序.使用Xamarin框 ...

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

    Xamarin XAML语言教程构建ControlTemplate控件模板 (四) 2.在页面级别中构建控件模板 如果开发者要在页面级别中构建控件模板,首先必须将ResourceDictionary添 ...

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

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

随机推荐

  1. [Leetcode] Reverse nodes in k group 每k个一组反转链表

    Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. If ...

  2. 洛谷 P2387 [NOI2014]魔法森林 解题报告

    P2387 [NOI2014]魔法森林 题目描述 为了得到书法大家的真传,小 E 同学下定决心去拜访住在魔法森林中的隐 士.魔法森林可以被看成一个包含 n 个节点 m 条边的无向图,节点标号为 1,2 ...

  3. ionic2-键盘覆盖输入框和返回键问题解决方案

    http://blog.csdn.net/u012979009/article/details/52514892有遇到这个问题的去这个地址看

  4. notepad++中快速插入当前时间方法

    转载自:http://blog.csdn.net/donghustone/article/details/7436483 在notepad++中快速插入当前时间方法: 插件是notepad++的一大优 ...

  5. 常见通用的 JOIN 查询

    SQL执行循序: 手写: SELECT DISTINCT <query_list> FROM <left_table> <join type> JOIN <r ...

  6. Ubuntu gnome 16.04下的一些个人配置

    虽说并没有改什么,但还是花了我很长时间去搞明白…… 最开始要看下这里,调下比如系统时间等东西 UPD:安装时千万不要对主目录进行加密 1.登录前调整一下触控板和打开小键盘 先打开/etc/gdm3/I ...

  7. ecma 2018, javascript spread syntax behaves like Object.assign

    as the subject. It is only supported in Chrome version 60+, so, first check the version, or just use ...

  8. HDU1083(二分图最大匹配vector实现)

    Courses Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total S ...

  9. tmux下vim颜色不正常问题

    在解决了tmux下,make menuconfig颜色不正常问题https://www.cnblogs.com/zqb-all/p/9702582.html后,引入了新的问题,vim颜色错乱. 尝试了 ...

  10. 【Linux驱动学习】SD卡规范学习

    摘要: 学习SD卡的相关规范,包括定义,硬件特性,数据传输,命令系统等.不涉及代码. 文章针对Linux驱动开发而写,以助于理解SD卡驱动,不会涉及过多硬件内容. 纲要: 1. SD卡介绍 2. SD ...