XAML in Xamarin.Forms 基礎篇 電子書

XAML in Xamarin.Forms 基礎篇 電子書
XAML in Xamarin.Forms 基礎篇 電子書

Xamarin.Forms 快速入門 電子書

Xamarin.Forms 快速入門 電子書
Xamarin.Forms 快速入門 電子書

2017/01/18

Xamarin FAQ 1-17 : 如何在 XAML 中,使用與存取 .NET 靜態屬性

問題

當您想要使用 .NET 的靜態屬性,來集中管理 XAML 中會參考到的物件,那麼,在 XAML 中,是要如何參考這個 .NET 中的靜態屬性值呢?

解答

  • 首先,您需要在 .NET 中,定義一個靜態類別,和裡面的靜態屬性。
  • 在 XAML 裡面,為了要能夠參考到這個 .NET 中的靜態屬性,您需要宣告一個新的命名空間 ( namespace )。
    在底下的範例中,使用了 xmlns 這個關鍵字,宣告了一個新的命名空間 xmlns:local="clr-namespace:App1" 叫做 local。
    當您要參考這個新的命名空間內了某個靜態屬性,例如,Label 這個控制項的 Font 這個屬性,它的字體大小值需要參考到 .NET 靜態屬性 AppConstants.TitleFont,這個時候,您可以使用 x:Static這個延伸擴充標記來參考其他物件屬性。
    Font="{x:Static local:AppConstants.TitleFont}" 在這個範例中,使用了 x:Static 配合了指定 AppConstants.TitleFont屬性值,是定義在 local 命名空間。
<?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:App1"
             xmlns:sys="clr-namespace:System;assembly=mscorlib"
             x:Class="App1.MainPage">

  <Label Text="Hello, XAML!"
         VerticalOptions="{x:Static LayoutOptions.Start}"
         HorizontalTextAlignment="{x:Static TextAlignment.Center}"
         TextColor="{x:Static Color.Aqua}"
         BackgroundColor="{x:Static local:AppConstants.ForegroundColor}"
         Font="{x:Static local:AppConstants.TitleFont}"
         />
</ContentPage>

沒有留言:

張貼留言