我目前正在开发Xamarin表格中的PCL项目,并开始研究iOS实现,因为我完成了Android操作。我遇到的问题是我的视图的背景图像被放大(就像工具栏上的图标一样)。它可能使用全尺寸图像,所以我希望使用像Aspect=Aspect.AspectFit
这样的东西但是从那以后我正在使用我使用Background= Height>Width ? <picture_string_portrait> : <picture_string_landscape>
的PCL代码,它需要一个字符串。我似乎无法弄清楚如何修复此问题+我只能共享默认代码,因为这是我目前正在为之工作的公司(所以我也不担心屏幕)。
这是我的pcl代码(myview.xaml.cs)的一部分,它在加载和方向更改时命中。在Android中,它可以很好地扩展,但在iOS中却没有。
private void OnSizeChanged(object sender, EventArgs eventArgs)
{
BackgroundImage = Height > Width ? "background_portrait.jpg" : "background_landscape.jpg";
}
如果这是一个菜鸟问题我道歉但我已经完成了我的谷歌分享,似乎找不到任何有用的东西。对所有人都有效的PCL解决方案将不胜感激。
提前致谢!
答案 0 :(得分:1)
ContentPage.BackgroundImage
的问题在于您无法控制它的宽高比。看到设备如何具有各种尺寸和形状,替代解决方案可能会更好地为您服务。您可以使用Image
中的ContentPage
并使用其Aspect
来实现相同的结果。一种方法是AbsoluteLayout
这样:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="Sample">
<AbsoluteLayout VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
<Image AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="0, 0, 1, 1" Source="background.png" Aspect="AspectFill"/>
<StackLayout AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="0, 0, 1, 1">
// Content
</StackLayout>
</AbsoluteLayout>
</ContentPage>
另一个与此示例中的RelativeLayout
类似:
http://dotnetbyexample.blogspot.nl/2015/02/using-full-size-none-stretched.html