我想使用一个图像,它的宽度应该是父宽度的1/3。图像的高度应按正确宽高比的宽度缩放。因此,我想控制图像顶部/底部的填充。
当然我可以使用WidthRequest
,但那是some kind of fixed values。
<Image x:Name="logo"
Source="logo.png"
Aspect="AspectFit"
HorizontalOptions="Center">
<Image.WidthRequest>
<OnIdiom x:TypeArguments="x:Double" Phone="150" Tablet="200" />
</Image.WidthRequest>
</Image>
我可以使用AbsoluteLayout
或RelativeLayout
,但我不知道应该使用哪个高度。那是因为我想设置一个宽度,高度应该正确地缩放它。例如:
<AbsoluteLayout>
<Image x:Name="logo"
Source="Assets/logo.png"
Aspect="AspectFit"
AbsoluteLayout.LayoutBounds="0.5,0.5,0.5,1"
AbsoluteLayout.LayoutFlags="All" />
</AbsoluteLayout>
这样可行,但我无法准确指定底部填充。在一个平台上它是好的,在另一个平台上它没有。现在我尝试了Grid
:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="40" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Image x:Name="logo"
HorizontalOptions="CenterAndExpand"
Aspect="AspectFit"
Grid.Row="0"
Grid.Column="1">
<Image.Source>
<OnPlatform x:TypeArguments="ImageSource">
<OnPlatform.iOS>logo.png</OnPlatform.iOS>
<OnPlatform.Android>logo.png</OnPlatform.Android>
<OnPlatform.WinPhone>Assets/logo.png.</OnPlatform.WinPhone>
</OnPlatform>
</Image.Source>
</Image>
</Grid>
在这里,我也无法定义顶级&amp;底部填充。在肖像中,没有,在景观中没有。
有什么建议吗?