2017-07-10 71 views
1

我想要做的事情可能看起來很簡單,但我一直在尋找大約一個小時,但沒有運氣到目前爲止。Xamarin Forms XAML OnPlatform VerticalOptions

我有以下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> 

但它給人一個錯誤說:

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

我也做了同樣的成功,但對於X型的其他屬性:布爾型,X:雙和厚度...出於好奇心,我一直在試圖找到一些文檔,概述所有可用的x:TypeArguments作爲參考,但仍然沒有運氣。

回答

4

您的問題是在這條線

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

您是說價值是一個字符串但是這是一個LayoutOptions型。所以改變這種,它的工作原理:

<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> 

Xamarin documentation你可以看到,VerticalOptionLayoutOption

語法

公共LayoutOptions VerticalOptions {獲得;組; }

定義如何佈局元素的LayoutOptions。除非另有說明,否則默認值爲LayoutOptions.Fill。

我希望這可以幫助你。

+1

非常感謝。我總是對我編寫的每個XAML類型參數產生困惑,但是您使它變得更容易 –