[英]Background image PCL xamarin forms iOS zoomed in
我目前正在处理Xamarin格式的PCL项目,并且因为我完成了Android,所以开始从事iOS实施。 我遇到的问题是视图的背景图像被放大了(工具栏上的图标也是如此),它可能使用了全尺寸图像,因此我希望使用Aspect=Aspect.AspectFit
类的东西,但是由于我正在使用PCL代码,我曾使用Background= Height>Width ? <picture_string_portrait> : <picture_string_landscape>
Background= Height>Width ? <picture_string_portrait> : <picture_string_landscape>
,它需要一个字符串。 我似乎无法弄清楚该如何解决+我只能共享默认代码,因为这是针对我当前正在工作的公司的(所以恐怕也没有筛选器了)。
这是我的pcl代码(myview.xaml.cs)的一部分,该代码在加载时和方向改变时起作用。 在Android中,它可以很好地扩展,但在iOS中则不能。
private void OnSizeChanged(object sender, EventArgs eventArgs)
{
BackgroundImage = Height > Width ? "background_portrait.jpg" : "background_landscape.jpg";
}
如果这是一个菜鸟问题,我深表歉意,但我已经完成了很多与谷歌搜索有关的工作,似乎找不到任何有用的东西。 一个适用于所有人的PCL解决方案将不胜感激。
提前致谢!
ContentPage.BackgroundImage
的问题在于您无法控制其宽高比。 鉴于设备如何具有各种尺寸和形状,替代解决方案可能对您更好。 通过在ContentPage
使用Image
并使用其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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.