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