Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
Xamarin表单中ViewBox的备选方案_Xamarin_Xamarin.ios_Xamarin.forms - Fatal编程技术网

Xamarin表单中ViewBox的备选方案

Xamarin表单中ViewBox的备选方案,xamarin,xamarin.ios,xamarin.forms,Xamarin,Xamarin.ios,Xamarin.forms,Xamarin中的ViewBox是否有其他选择,在这里我可以保持图像的纵横比 我正在将我的Windows Phone应用程序转换为Xamarin表单。我的大多数屏幕都有可点击的图像,我可以在其中捕获图像部分的X-Y坐标。我的所有图像都在视图框中以保持其纵横比,这样无论屏幕大小/分辨率如何,我都可以获得相同的图像x y位置 我也愿意使用Xamarin.IOS中的任何本机控件执行此操作。不幸的是,Xamain.forms中的控件与WP中的同名控件不同 你需要的是有点复杂但灵活的。当应用程序在不同大小

Xamarin中的ViewBox是否有其他选择,在这里我可以保持图像的纵横比

我正在将我的Windows Phone应用程序转换为Xamarin表单。我的大多数屏幕都有可点击的图像,我可以在其中捕获图像部分的X-Y坐标。我的所有图像都在视图框中以保持其纵横比,这样无论屏幕大小/分辨率如何,我都可以获得相同的图像x y位置

我也愿意使用Xamarin.IOS中的任何本机控件执行此操作。

不幸的是,Xamain.forms中的控件与WP中的同名控件不同

你需要的是有点复杂但灵活的。当应用程序在不同大小的屏幕上运行时,控件将根据您的限制进行调整

例如:

<RelativeLayout>
    <Image BackgroundColor="Red" Source="Icon-76.png" Aspect="Fill" x:Name="redBox"
        RelativeLayout.XConstraint="{ConstraintExpression 
            Type=RelativeToParent,
            Property=Width,
            Factor=0.05,
            Constant=0}"
        RelativeLayout.YConstraint="{ConstraintExpression 
            Type=RelativeToParent,
            Property=Y,
            Factor=1,
            Constant=20}"
        RelativeLayout.WidthConstraint="{ConstraintExpression
            Type=RelativeToParent,
            Property=Width,
            Factor=.6,
            Constant=0}"
        RelativeLayout.HeightConstraint="{ConstraintExpression
            Type=RelativeToParent,
            Property=Height,
            Factor=.6,
            Constant=0}" />
</RelativeLayout>
约束表达式:

键入–约束是相对于父视图还是相对于其他视图

属性–将哪个属性用作约束的基础

因子–应用于属性值的因子

常量–用作该值偏移量的值

元素名称–约束相对于的视图的名称

您可以设置,为您的图像找到合适的显示

<Image Source="Icon-76.png" Aspect="Fill"/>

AspectFill缩放图像以填充视图。为了填充视图,可能会剪裁某些零件

AspectFit缩放图像以适应视图。某些零件可能会留空(字母框)

填充缩放图像,使其完全填充视图。在X和Y方向上缩放可能不均匀

不幸的是,Xamain.forms中的名称与WP中的名称不同

你需要的是有点复杂但灵活的。当应用程序在不同大小的屏幕上运行时,控件将根据您的限制进行调整

例如:

<RelativeLayout>
    <Image BackgroundColor="Red" Source="Icon-76.png" Aspect="Fill" x:Name="redBox"
        RelativeLayout.XConstraint="{ConstraintExpression 
            Type=RelativeToParent,
            Property=Width,
            Factor=0.05,
            Constant=0}"
        RelativeLayout.YConstraint="{ConstraintExpression 
            Type=RelativeToParent,
            Property=Y,
            Factor=1,
            Constant=20}"
        RelativeLayout.WidthConstraint="{ConstraintExpression
            Type=RelativeToParent,
            Property=Width,
            Factor=.6,
            Constant=0}"
        RelativeLayout.HeightConstraint="{ConstraintExpression
            Type=RelativeToParent,
            Property=Height,
            Factor=.6,
            Constant=0}" />
</RelativeLayout>
约束表达式:

键入–约束是相对于父视图还是相对于其他视图

属性–将哪个属性用作约束的基础

因子–应用于属性值的因子

常量–用作该值偏移量的值

元素名称–约束相对于的视图的名称

您可以设置,为您的图像找到合适的显示

<Image Source="Icon-76.png" Aspect="Fill"/>

AspectFill缩放图像以填充视图。为了填充视图,可能会剪裁某些零件

AspectFit缩放图像以适应视图。某些零件可能会留空(字母框)

填充缩放图像,使其完全填充视图。在X和Y方向上缩放可能不均匀


据我所知,目前还没有一个控件可以模仿iOS或Android中viewbox的行为。iOS使用通用约束系统来组织父容器中的控件。android也有类似的原理。试试Grid。它保持着这个比例。有一个陷阱。它无法正确缩放分配的高度。看看我的答案,我已经在另一个答案中解决了这个问题。希尤里,我可以知道你对此的另一个答案是什么吗?我在这里找不到任何控件。据我所知,没有一个现有控件可以模仿iOS或Android中viewbox的行为。iOS使用通用约束系统来组织父容器中的控件。android也有类似的原理。试试Grid。它保持着这个比例。有一个陷阱。它无法正确缩放分配的高度。看看我的答案,我已经在另一个答案中解决了这个问题。希尤里,我可以知道你对此的另一个答案是什么吗?我在这里找不到。嗨,凯文,谢谢你的回复。但是使用RelativeLayout和AspectFit,图像大小将始终保持不变,它不会缩放到屏幕大小。此外,XY坐标因屏幕大小不同而不同。有办法控制吗?我希望XY坐标与屏幕中图像的大小无关。欢迎任何建议。@Praddy,我已经更新了我的答案。使用
Aspect=“Fill”
缩放屏幕大小。此外,x、y坐标可以设置为父视图或其他视图宽度/高度的特定百分比,请参阅我的XConstraint更新。嗨,凯文,谢谢你的回复。但是使用RelativeLayout和AspectFit,图像大小将始终保持不变,它不会缩放到屏幕大小。此外,XY坐标因屏幕大小不同而不同。有办法控制吗?我希望XY坐标与屏幕中图像的大小无关。欢迎任何建议。@Praddy,我已经更新了我的答案。使用
Aspect=“Fill”
缩放屏幕大小。此外,可以将x、y坐标设置为父视图或其他视图宽度/高度的特定百分比,请参见我的XConstraint更新。