您好,登錄后才能下訂單哦!
小編給大家分享一下Xamarin XAML語言如何構建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="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
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控件模板。
看完了這篇文章,相信你對“Xamarin XAML語言如何構建ControlTemplate控件模板”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。