zoukankan      html  css  js  c++  java
  • Xamarin XAML语言教程ContentView视图作为自定义视图的父类

    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中可以包含视图,还可以包括布局,从而构建更为复杂的布局模式。

  • 相关阅读:
    pod hook 钩子函数 生命周期 lifecycle/postStart/preStop
    yaml基本语法 && 静态pod && pod生命周期 && pod健康检测
    netsh winsock reset
    H3C Password Contrpol
    H3C ssh 配置参考
    win7怎么修复winsock被删除
    pod健康检测 exec/http/tcpSocket
    win10 1709 新装 鼠标卡顿
    shell 标准输入输出及错误输出 重定向
    IP安全策略只允许指定IP连接远程桌面,限制IP登
  • 原文地址:https://www.cnblogs.com/daxueba-ITdaren/p/7149199.html
Copyright © 2011-2022 走看看