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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- WPF 控制元件模板ControlTemplate控制元件
- 剖析XAML語言
- Xamarin Essentials教程構建共享請求
- XAML常用控制元件2控制元件
- Xamarin Essentials教程語音播報TextToSpeech
- C語言教程——03 C語言結構C語言
- XAML一些控制元件的使用控制元件
- 如何構建設計語言系統
- 使用函數語言程式設計重構模板模式函數程式設計模式
- WPF DataTemplate ControlTemplate
- Xamarin.FormsShell基礎教程(3)Shell專案構成ORM
- Xamarin.FormsShell基礎教程(8)Shell的模版構成ORM
- C 語言微服務框架構建 websocket 聊天室微服務框架架構Web
- django 模板語言的註釋操作Django
- 以太坊Solidity程式語言開發框架————15、構建流程Solid框架
- 如何組織構建多檔案 C 語言程式(二)
- 如何組織構建多檔案 C 語言程式(一)
- 基於Java語言構建區塊鏈(四)—— 交易(UTXO)Java區塊鏈
- Pants:類似Maven但支援多個語言的構建Maven
- Xamarin Essentials教程陀螺儀GyroscopeROS
- Xamarin Essentials教程磁力計Magnetometer
- SQL語言(結構化查詢語言)SQL
- 3分鐘短文:Laravel模板,也支援一般程式語言的語法結構了Laravel
- WPF Button Setter Template Setter.Value ControlTemplate Border ContentPresenter ControlTemplate.Triggers
- Prolog 語言入門教程
- C語言 Make命令教程C語言
- dotnet 9 WPF 專案禁用 IncludePackageReferencesDuringMarkupCompilation 導致原始碼包 XAML 構建失敗Package原始碼
- 以太坊Solidity程式語言開發框架————6、構建應用Solid框架
- 基於Java語言構建區塊鏈(六)—— 交易(Merkle Tree)Java區塊鏈
- 基於Java語言構建區塊鏈(五)—— 地址(錢包)Java區塊鏈
- 基於Java語言構建區塊鏈(一)—— 基本原型Java區塊鏈原型
- 二叉樹的構建以及遍歷(Java語言描述)二叉樹Java
- Xamarin Essentials教程開啟檔案
- Xamarin Essentials教程地理定位Geolocation
- Xamarin Essentials教程安全儲存SecureStorageREST
- 基於Go語言構建的萬億級流量大資料平臺架構Go大資料架構
- R語言的入門教程R語言
- go語言快速入門教程Go
- C語言精品影片教程大全C語言