2017-07-10 68 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类型参数产生困惑,但是您使它变得更容易 –