Xamarin Forms中的响应字体大小

j0pj023g  于 2023-04-18  发布在  其他
关注(0)|答案(3)|浏览(147)

我们如何在Xamarin表单中像这样在bootstrap中做出响应的字体大小?
如果是较小的设备,则显示小字体,
如果是较大设备,则显示大字体。
是否有任何NuGet包或工作源?

krugob8w

krugob8w1#

你不需要任何软件包。这个功能内置在Xamarin. Forms中。
根据Xamarin的字体大小文档:
大小值以与设备无关的单位度量。有关详细信息,请参阅度量单位
如果你打开Units of measurement链接,你会看到:
Xamarin.Forms使用独立于平台的测量单位,该单位跨设备和平台进行标准化。Xamarin. Forms中每英寸有160个单位,或每厘米有64个单位。
此外,如果你浏览一下已经预定义的命名字体大小,你会发现每个内置大小都有一些差异。这正是幕后发生的事情- Xamarin正在相应地“缩放”字体大小,考虑到设备的尺寸。

s6fujrry

s6fujrry2#

你不需要任何NuGet包。如果你想为手机和标签设置不同的大小,你可以这样做。

<Label Text = "Hello"
FontSize = "{OnIdiom Phone = 20 Tablet = 72}" />

Xamarin缩放字体大小,因为单位与设备无关。

vshtjzan

vshtjzan3#

根据我的经验,我不相信目前有一种方法可以在Xamarin中原生地进行真正的响应式设计。希望Maui能够改进这一点,但我们必须拭目以待。问题是:

  • NamedFontSizes 不会缩放。换句话说,在较大的设备上,虽然由于密度/大小,大小会更大,但它不会按比例增大,因此有时会导致字体太小。
  • OnIdiom 可能在某些情况下有效,但这并不能解决电话之间的差异问题。

我发现的唯一一个接近你要找的东西是carolzbnbr'sOnScreenSize markup extension,它在NuGet上的名称是“OnScreenSizeMarkup.Forms”或“OnScreenSizeMarkup.Maui”。
carolzbnbr写了一篇关于它的博客文章,名为“Adaptive layouts for different device sizes in Xamarin apps
该扩展将屏幕大小分类为基于尺寸的命名大小(使用Xamarin.Essentials),然后添加基于这些大小指定唯一值的功能,如下所示:

<Label 
    Text="Sample Text" 
    FontSize="{markups:OnScreenSize DefaultSize=Large, Medium=Large, Large=50, ExtraLarge=70}" 
/>

我还应该提到的是,你并不局限于在FontSize中使用它。你可以在很多地方使用它,甚至可以使用单引号来调整左/上/右/下的值:

<label Margin="{markups:OnScreenSize DefaultSize='20,60,20,20', ExtraLarge='40'}" />

相关问题