如何将像素转换为xamarin.forms单位? 每英寸有160个单位。 2.如果我创建了一个dpi为72的Photoshop文件,那么每英寸将有72个点。 3.如果元素在Photoshop中的高度是88px,那么我必须在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

如果手机为360dpi,则xamarin的高度应为:
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?