2017-07-10 5 views
1

Was ich versuche zu tun scheint mag einfach zu sein, aber ich habe bis jetzt eine Stunde ohne Glück gesucht.Xamarin Formen XAML OnPlatform VerticalOptions

Ich habe folgende XAML

<StackLayout Grid.Row="2" Margin="20,20,20,20"> 
    <StackLayout.VerticalOptions> 
     <OnPlatform x:TypeArguments="x:String"> 
      <On Platform="Android" Value="CenterAndExpand" /> 
      <On Platform="iOS" Value="EndAndExpand" /> 
     </OnPlatform> 
    </StackLayout.VerticalOptions> 
</StackLayout> 

aber es ist ein Fehler geben zu sagen:

Cannot assign property VerticalOptions, property does not exists, or is not assignable, or mismatching type between value and property 

ich das gleiche erfolgreich getan haben, sondern auch für andere Eigenschaften vom Typ x: Boolean, x: Double und Thickness ... Aus Neugierde habe ich auch versucht, eine Dokumentation zu finden, die alle verfügbaren x: TypeArguments als Referenz darstellt, aber immer noch ohne Glück.

Antwort

4

Ihr Problem ist in dieser Zeile

<OnPlatform x:TypeArguments="x:String"> 

Sie sagen, dass der Wert ein String ist aber es ist ein LayoutOptions Typ. Also diese zu ändern, es funktioniert:

<StackLayout Margin="20,20,20,20"> 
    <StackLayout.VerticalOptions> 
     <OnPlatform x:TypeArguments="LayoutOptions"> 
      <On Platform="Android" Value="CenterAndExpand" /> 
      <On Platform="iOS" Value="EndAndExpand" /> 
     </OnPlatform> 
    </StackLayout.VerticalOptions> 
</StackLayout> 

In der Xamarin documentation Sie können sehen, dass VerticalOption ist ein LayoutOption:

Syntax

public LayoutOptions VerticalOptions {get; einstellen; }

Wert

A LayoutOptions die definiert, wie das Element zu legen. Der Standardwert ist LayoutOptions.Fill, sofern nicht anders dokumentiert.

Ich hoffe, das kann Ihnen helfen.

+1

Vielen Dank. Ich hatte immer diese Verwirrung mit jedem Argument des XAML-Typs, das ich schreibe, aber Sie haben es viel einfacher gemacht –

Verwandte Themen