Xamarin XAML語言教程構建ControlTemplate控制元件模板
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-3:ControlTemplateDemo】下面將在應用程式級別中構建控制元件模板,實現應用程式主題的切換。具體的操作步驟如下:
(1)開啟App.xaml檔案,編寫程式碼,實現在應用程式級別中構建控制元件模板,程式碼如下:
- <?xml version="1.0" encoding="utf-8" ?>
- <Application xmlns=""
- xmlns:x=""
- 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控制元件模板。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-2141952/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Xamarin XAML語言教程構建ControlTemplate控制元件模板 (二)控制元件
- Xamarin XAML語言教程構建ControlTemplate控制元件模板 (四)控制元件
- Xamarin XAML語言教程構建ControlTemplate控制元件模板 (三)控制元件
- Xamarin XAML語言教程控制元件模板的模板繫結控制元件
- Xamarin XAML語言教程模板頁面TemplatedPage
- Xamarin XAML語言教程構建進度條ProgressBar
- Xamarin XAML語言教程Xamarin.Forms中構建進度條ORM
- Xamarin XAML語言教程模板檢視TemplatedView(二)View
- Xamarin XAML語言教程模板檢視TemplatedView(一)View
- Xamarin XAML語言教程XAML檔案結構與解析XAML
- Xamarin XAML語言教程使用Xamarin Studio建立XAML(二)
- Xamarin XAML語言教程使用Visual Studio建立XAML
- Xamarin XAML語言教程物件元素的宣告方式物件
- Xamarin XAML語言教程基本檢視ContentViewView
- Xamarin XAML語言教程基礎語法篇大學霸
- Xamarin XAML語言教程Visual Studio中實現XAML預覽
- Xamarin XAML語言教程將XAML設計的UI顯示到介面UI
- Xamarin XAML語言教程基本檢視ContentViewg構架範圍框架View框架
- Xamarin XAML語言教程Xamarin.Forms中程式狀態與進度(一)ORM
- Xamarin XAML語言教程Xamarin.Forms中改變活動指示器顏色ORM
- Xamarin XAML語言教程Xamarin.Forms中活動指示器的顯示隱藏ORM
- Xamarin.Forms XAML控制元件的公共屬性ORM控制元件
- Xamarin XAML語言教程基本頁面ContentPage佔用面積
- 剖析XAML語言
- Xamarin Essentials教程構建共享請求
- Xamarin XAML語言教程通過ProgressTo方法對進度條設定
- Xamarin XAML語言教程通過資料繫結使用Progress屬性
- Xamarin XAML語言教程使用方法設定進度條進度
- Xamarin XAML語言教程Progress屬性設定進度條進度
- Xamarin XAML語言教程基本頁面ContentPage佔用面積(二)
- Xamarin XAML語言教程使用使用Progress屬性設定當前進度
- Xamarin XAML語言教程ContentView檢視作為自定義檢視的父類View
- Xamarin XAML語言教程使用屬性設定進度條的當前進度
- Xamarin XAML語言教程隱藏檔案使用Progress屬性設定進度條
- Xamarin XAML語言教程使用Progress屬性資料繫結設定進度條進度
- Xamarin iOS教程之頁面控制元件iOS控制元件
- 使用Go語言構建一個解釋型語言Go
- XAML常用控制元件2控制元件