Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.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# 如何将边距、填充、宽度和高度值转换为Xamarin格式的像素(px)?_C#_Ios_Xamarin_Xamarin.forms_Uwp - Fatal编程技术网

C# 如何将边距、填充、宽度和高度值转换为Xamarin格式的像素(px)?

C# 如何将边距、填充、宽度和高度值转换为Xamarin格式的像素(px)?,c#,ios,xamarin,xamarin.forms,uwp,C#,Ios,Xamarin,Xamarin.forms,Uwp,Xamarin表单具有边距、填充、宽度和高度属性的控件,如何将此属性值转换为像素 已经获得了一些将db转换为px的参考链接,但是默认的xamarin形式是px还是db是疑问 public float convertDpToPx(Context context, float dp) { return dp * context.getResources().getDisplayMetrics().density; } 是否可以在xamarin(uwp、Android和iOS)中将宽度和高

Xamarin表单具有边距填充宽度高度属性的控件,如何将此属性值转换为像素

已经获得了一些将db转换为px的参考链接,但是默认的xamarin形式是px还是db是疑问

public float convertDpToPx(Context context, float dp) 
{
  return dp * context.getResources().getDisplayMetrics().density; 
}

是否可以在xamarin(uwp、Android和iOS)中将宽度和高度值转换为像素


提前感谢。

dp是与密度无关的像素,dp通常用于Android开发,以适应手机。谷歌规定,当1英寸屏幕上有160像素时,1dp=1px=1dpi

android dp的目的是适应不同大小和分辨率的手机,dp值允许android系统自动选择匹配的资源。换句话说,dp值可以通过某种方式获得,以根据设备要求获得相应的图像资源或大小

xamarin提供了用于获取当前监视器密度的xamarin.Essentials。您可以使用dp和px的关系从px获得dp(xamrin宽度和高度的默认单位是px)


检查一下你的问题似乎与此相同:@deirahi,谢谢,我通过那个链接,需要一些澄清,我是android初学者,请解释一下为什么我们需要将db转换为px?我也没有太多经验。所以,我不知道为什么,但我想一些API和库需要像素。
public static int px2dip(DisplayInfo mainDisplayInfo, float pxValue)
{
    float scale = (float)mainDisplayInfo.Density;
    return (int)(pxValue / scale + 0.5f);
}

var dp = px2dip(DeviceDisplay.MainDisplayInfo, pxvalue);