Xamarin表示XAML OnPlatform VerticalOptions

时间:2017-07-10 14:03:16

标签: c# xaml xamarin vertical-alignment

我试图做的事情似乎很简单,但到目前为止,我一直在寻找大约一个小时没有运气。

我有以下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作为参考,但仍然没有运气。

1 个答案:

答案 0 :(得分:6)

你的问题就在这一行

<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

  

语法

     

public LayoutOptions VerticalOptions {get;组; }

     

     

定义如何布置元素的LayoutOptions。除非另有说明,否则默认值为LayoutOptions.Fill。

我希望这可以帮到你。