XAML'de Bağımsız Değişkenleri Geçirme
Bu makalede, bağımsız değişkenleri varsayılan olmayan oluşturuculara geçirmek, fabrika yöntemlerini çağırmak ve genel bağımsız değişkenin türünü belirtmek için XAML özniteliklerinin kullanılması gösterilmektedir.
Genel bakış
Genellikle bağımsız değişken gerektiren oluşturucularla veya statik oluşturma yöntemini çağırarak nesneleri örneklemek gerekir. Bu, ve x:FactoryMethod
öznitelikleri kullanılarak XAML'de x:Arguments
elde edilebilir:
x:Arguments
özniteliği, varsayılan olmayan bir oluşturucu veya fabrika yöntemi nesne bildirimi için oluşturucu bağımsız değişkenlerini belirtmek için kullanılır. Daha fazla bilgi için bkz . Oluşturucu Bağımsız Değişkenlerini Geçirme.x:FactoryMethod
özniteliği, bir nesneyi başlatmak için kullanılabilecek bir fabrika yöntemi belirtmek için kullanılır. Daha fazla bilgi için bkz . Fabrika Yöntemlerini Çağırma.
Ayrıca, özniteliği genel x:TypeArguments
tür oluşturucusunun genel tür bağımsız değişkenlerini belirtmek için kullanılabilir. Daha fazla bilgi için bkz . Genel Tür Bağımsız Değişkeni Belirtme.
Oluşturucu Bağımsız Değişkenlerini Geçirme
Bağımsız değişkenler, özniteliği kullanılarak varsayılan olmayan bir oluşturucuya x:Arguments
geçirilebilir. Her oluşturucu bağımsız değişkeni, bağımsız değişkenin türünü temsil eden bir XML öğesi içinde sınırlandırılmalıdır. Xamarin.Forms temel türler için aşağıdaki öğeleri destekler:
x:Array
x:Boolean
x:Byte
x:Char
x:DateTime
x:Decimal
x:Double
x:Int16
x:Int32
x:Int64
x:Object
x:Single
x:String
x:TimeSpan
Aşağıdaki kod örneği özniteliğini x:Arguments
üç Color
oluşturucuyla kullanmayı gösterir:
<BoxView HeightRequest="150" WidthRequest="150" HorizontalOptions="Center">
<BoxView.Color>
<Color>
<x:Arguments>
<x:Double>0.9</x:Double>
</x:Arguments>
</Color>
</BoxView.Color>
</BoxView>
<BoxView HeightRequest="150" WidthRequest="150" HorizontalOptions="Center">
<BoxView.Color>
<Color>
<x:Arguments>
<x:Double>0.25</x:Double>
<x:Double>0.5</x:Double>
<x:Double>0.75</x:Double>
</x:Arguments>
</Color>
</BoxView.Color>
</BoxView>
<BoxView HeightRequest="150" WidthRequest="150" HorizontalOptions="Center">
<BoxView.Color>
<Color>
<x:Arguments>
<x:Double>0.8</x:Double>
<x:Double>0.5</x:Double>
<x:Double>0.2</x:Double>
<x:Double>0.5</x:Double>
</x:Arguments>
</Color>
</BoxView.Color>
</BoxView>
Etiketindeki x:Arguments
öğelerin sayısı ve bu öğelerin türleri oluşturuculardan Color
biriyle eşleşmelidir. Tek Color
parametreli oluşturucu , 0 (siyah) ile 1 (beyaz) arasında gri tonlama değeri gerektirir. Üç Color
parametreli oluşturucu , 0 ile 1 arasında bir kırmızı, yeşil ve mavi değer gerektirir. Color
Dört parametreli oluşturucu, dördüncü parametre olarak bir alfa kanalı ekler.
Aşağıdaki ekran görüntüleri, her oluşturucuyu belirtilen bağımsız değişken değerleriyle çağırmanın Color
sonucunu gösterir:
Fabrika Yöntemlerini Çağırma
Fabrika yöntemleri, özniteliğini kullanarak yöntemin adını ve özniteliğini kullanarak x:FactoryMethod
bağımsız değişkenlerini belirterek XAML'de x:Arguments
çağrılabilir. Fabrika yöntemi, yöntemleri tanımlayan sınıf veya yapıyla aynı türdeki nesneleri veya değerleri döndüren bir public static
yöntemdir.
Yapısı Color
bir dizi fabrika yöntemini tanımlar ve aşağıdaki kod örneği bunlardan üçünün çağrılmasını gösterir:
<BoxView HeightRequest="150" WidthRequest="150" HorizontalOptions="Center">
<BoxView.Color>
<Color x:FactoryMethod="FromRgba">
<x:Arguments>
<x:Int32>192</x:Int32>
<x:Int32>75</x:Int32>
<x:Int32>150</x:Int32>
<x:Int32>128</x:Int32>
</x:Arguments>
</Color>
</BoxView.Color>
</BoxView>
<BoxView HeightRequest="150" WidthRequest="150" HorizontalOptions="Center">
<BoxView.Color>
<Color x:FactoryMethod="FromHsla">
<x:Arguments>
<x:Double>0.23</x:Double>
<x:Double>0.42</x:Double>
<x:Double>0.69</x:Double>
<x:Double>0.7</x:Double>
</x:Arguments>
</Color>
</BoxView.Color>
</BoxView>
<BoxView HeightRequest="150" WidthRequest="150" HorizontalOptions="Center">
<BoxView.Color>
<Color x:FactoryMethod="FromHex">
<x:Arguments>
<x:String>#FF048B9A</x:String>
</x:Arguments>
</Color>
</BoxView.Color>
</BoxView>
Etiketindeki x:Arguments
öğelerin sayısı ve bu öğelerin türleri, çağrılan fabrika yönteminin bağımsız değişkenleriyle eşleşmelidir. FromRgba
Fabrika yöntemi, sırasıyla 0 ile 255 arasında değişen kırmızı, yeşil, mavi ve alfa değerlerini temsil eden dört Int32
parametre gerektirir. FromHsla
Fabrika yöntemi, sırasıyla 0 ile 1 arasında ton, doygunluk, parlaklık ve alfa değerlerini temsil eden dört Double
parametre gerektirir. Fabrika FromHex
yöntemi, onaltılık (A)RGB rengini temsil eden bir String
gerektirir.
Aşağıdaki ekran görüntüleri, belirtilen bağımsız değişken değerleriyle her Color
fabrika yöntemini çağırmanın sonucunu gösterir:
Genel Tür Bağımsız Değişkeni Belirtme
Bir genel türün oluşturucusunun genel tür bağımsız değişkenleri, aşağıdaki kod örneğinde gösterildiği gibi özniteliği kullanılarak x:TypeArguments
belirtilebilir:
<ContentPage ...>
<StackLayout>
<StackLayout.Margin>
<OnPlatform x:TypeArguments="Thickness">
<On Platform="iOS" Value="0,20,0,0" />
<On Platform="Android" Value="5, 10" />
<On Platform="UWP" Value="10" />
</OnPlatform>
</StackLayout.Margin>
</StackLayout>
</ContentPage>
OnPlatform
sınıfı genel bir sınıftır ve hedef türle eşleşen bir x:TypeArguments
öznitelikle örneklenmelidir. On
sınıfında özniteliği tek Platform
string
bir değeri veya birden çok virgülle ayrılmış string
değeri kabul edebilir. Bu örnekte özelliği platforma StackLayout.Margin
özgü Thickness
olarak ayarlanmıştır.
Genel tür bağımsız değişkenleri hakkında daha fazla bilgi için bkz. XAML'deXamarin.Forms genel değişkenler.