正如本文档中指出的那样 - https://developer.xamarin.com/guides/xamarin-forms/creating-mobile-apps-xamarin-forms/summaries/chapter05/,指定高度为1将为您提供1,2或3个像素,具体取决于iOS设备 .
我想在我的视图中添加一个分隔符,类似于HTML中的hr . 我通过添加高度为1的BoxView或StackLayout以及必要的宽度来完成此操作 .
这意味着根据设备的不同,分隔符不会始终以1px呈现 . 有什么我可以做的,以确保我将永远获得任何设备1px?
目前,我所能想到的是将我的内容放入ListView单元格并利用提供的本机分隔符 .
2 回答
我认为你解释错了 . 虽然您实际上可能会得到1,2或3个像素,但用户会看到同样的事情 . 这是由于视网膜屏幕 . 密度会更高,但最终结果会相同 .
这与您需要为所有图像提供@ 2x和@ 3x后缀的原因相同 . 图像在物理上会更大,但在iOS上它们看起来会相同 .
按照类似的步骤回答https://stackoverflow.com/a/26570933/2931055我最终定义了一个全局样式,它使用在iOS和Android启动时设置的静态变量,然后在我的样式包中定义,以编程方式确定任何给定设备所需的点的分数 .
在我定义的便携式项目App.xaml.cs中
哪个需要为iOS和Android独立填充 .
对于iOS,在FinishedLaunching()中的AppDelegate.cs中
然后对于Android,在OnCreate()中的MainActivity.cs中
UIScreen.MainScreen.Scale
和Resources.DisplayMetrics.Density
将评估为1.0,2.0或3.0,具体取决于设备 .在我的便携式项目StyleKit(myApp \ Helpers \ StyleKit \ SytyleKit.cs)中,我创建了一个静态变量,以便以后在全局样式中使用
然后在我的全局样式(myApp \ App.xaml)中创建全局样式
最后当我想在xaml页面中使用一个
在iOS和Android上成功测试过 .