我试图做的事情似乎很简单,但到目前为止,我一直在寻找大约一个小时没有运气。
我有以下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作为参考,但仍然没有运气。
答案 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中,您可以看到VerticalOption
是LayoutOption
:
语法
public LayoutOptions VerticalOptions {get;组; }
值
定义如何布置元素的LayoutOptions。除非另有说明,否则默认值为LayoutOptions.Fill。
我希望这可以帮到你。