如何将像素转换为xamarin.forms单位? 每英寸有160个单位。 2.如果我创建了一个dpi为72的Photoshop文件,那么每英寸将有72个点。 3.如果元素在Photoshop中的高度是88px,那么我必须在xamarin中设置它什么
如果手机为360dpi,则xamarin的高度应为:如何将像素转换为xamarin.forms单位? 每英寸有160个单位。 2.如果我创建了一个dpi为72的Photoshop文件,那么每英寸将有72个点。 3.如果元素在Photoshop中的高度是88px,那么我必须在xamarin中设置它什么,xamarin.forms,Xamarin.forms,如果手机为360dpi,则xamarin的高度应为:88/72*160/2? 但这是不对的 我知道每个平台的单位,我只想知道如何从像素中获取单位 您可以使用来获得屏幕密度,如下所示: // Get Metrics var mainDisplayInfo = DeviceDisplay.MainDisplayInfo; // Screen density var density = mainDisplayInfo.Density; <BoxView x:Name="MyBoxVi
88/72*160/2
?
但这是不对的
我知道每个平台的单位,我只想知道如何从像素中获取单位
您可以使用来获得屏幕密度
,如下所示:
// Get Metrics
var mainDisplayInfo = DeviceDisplay.MainDisplayInfo;
// Screen density
var density = mainDisplayInfo.Density;
<BoxView x:Name="MyBoxView" BackgroundColor="CadetBlue" HorizontalOptions="Fill"/>
如果iOS设备中的密度为3
,像素为88
,则iOS中有88/3
单位
如果手机是360dpi
这意味着它应该是安卓设备,屏幕密度也可以通过360/160=2.25
来计算。然后为高度请求设置88/2.25个单位
=============================================更新==============================
如果在Xaml中有一个BoxView
,如下所示:
// Get Metrics
var mainDisplayInfo = DeviceDisplay.MainDisplayInfo;
// Screen density
var density = mainDisplayInfo.Density;
<BoxView x:Name="MyBoxView" BackgroundColor="CadetBlue" HorizontalOptions="Fill"/>
如果使用var density=mainDisplayInfo.density
要获得密度,您将获得屏幕密度::2.625
。(我的设备是Piexl_2_pie_9_0 api 28 emulator)
您知道屏幕宽度的大小是1080
像素,但是宽度是411.428571428571
。这应该意味着WidthRequest
的单位
如果你把411.428571428571*2.625
,你会得到1080
像素。你从哪里得到/2?88/72*160=196像素196应为单位?我想在Xamarin中,从Photoshop@Jason我只想从Photoshop中按像素获取Xamarin中的单位。@maui也许这有助于您理解Xamarin形式中的单位。@JuniorJiang MSFT我知道每个平台中的单位,我只想知道如何从像素获取单位。这不正确。我的意思是,如果我有一个photoshop设计,它的全部是像素,那么如何从中获得单位呢?例如,按钮的高度为88px。如何在xamarin中设置heightrequest?@maui“如何从中获取单位”是什么意思?如果是pixel,你可以从中得到piexl。@maui我已经更新了答案,有时间的时候你可以看一看。我的意思是如果boxView是88px,那么我应该根据不同的设备设置它的宽度请求?在不同的设备中,android或ios一个单位是不一样的?但是我知道一英寸有160个单位。一英寸有72个像素,对吗?72 dpi?这意味着1个单位=160/72?