Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 背景图像PCL xamarin窗体放大_C#_Ios_Xamarin_Xamarin.ios_Xamarin.forms - Fatal编程技术网

C# 背景图像PCL xamarin窗体放大

C# 背景图像PCL xamarin窗体放大,c#,ios,xamarin,xamarin.ios,xamarin.forms,C#,Ios,Xamarin,Xamarin.ios,Xamarin.forms,我目前正在Xamarin表单中进行PCL项目,并开始进行iOS实现,因为我完成了Android。我遇到的问题是视图的背景图像被放大了,工具栏上的图标也被放大了。它可能使用了全尺寸的图像,所以我希望使用Aspect=Aspect.AspectFit之类的东西,但因为我使用的是PCL代码,所以我使用了background=Height>Width?:,它需要一个字符串。我似乎不知道如何解决这个问题,我只能分享默认代码,因为这是我目前工作的公司的代码,所以恐怕也没有屏幕 这是我的pcl代码myview

我目前正在Xamarin表单中进行PCL项目,并开始进行iOS实现,因为我完成了Android。我遇到的问题是视图的背景图像被放大了,工具栏上的图标也被放大了。它可能使用了全尺寸的图像,所以我希望使用Aspect=Aspect.AspectFit之类的东西,但因为我使用的是PCL代码,所以我使用了background=Height>Width?:,它需要一个字符串。我似乎不知道如何解决这个问题,我只能分享默认代码,因为这是我目前工作的公司的代码,所以恐怕也没有屏幕

这是我的pcl代码myview.xaml.cs的一部分,它在加载和方向更改时命中。在安卓系统中,它可以很好地扩展,但在iOS系统中却不能

private void OnSizeChanged(object sender, EventArgs eventArgs)
{

     BackgroundImage = Height > Width ? "background_portrait.jpg" : "background_landscape.jpg";

 }
如果这是一个noob问题,我道歉,但我已经做了我的谷歌搜索公平份额,似乎找不到任何有用的。一个适用于所有人的PCL解决方案将不胜感激

提前谢谢

ContentPage.BackgroundImage的问题在于无法控制其纵横比。考虑到各种尺寸和形状的设备,另一种解决方案可能更适合您。您可以通过在ContentPage中使用一个图像并使用它的方面来实现相同的结果。一种方法是采用如下绝对布局:

<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:


一个是JPG,另一个是PNG,这有什么原因吗?我希望他们是一样的。也许你输入了一个错误,这就是为什么你没有加载?当你添加默认代码而不是工作代码时,这是一个错误。我正在更改它,感谢您注意mb!这些图片显示得很完美,但它们只是放大了,就像它显示了图片的实际大小一样,但它不适合屏幕,所以它只显示左上角的一部分作为完整背景。嗨,史蒂文,谢谢你为我提供了另一个解决方案!我假设对于屏幕旋转处理,我可以给图像命名,并在屏幕旋转代码中对其进行寻址,然后提供纵向/横向图片?无论如何,这个答案将帮助我实现我想要的,干杯!