gpt4 book ai didi

xamarin - Xamarin 表单上的 SkiaSharp 文本大小

转载 作者:行者123 更新时间:2023-12-01 09:48:47 25 4
gpt4 key购买 nike

Text Size Comparison

SKPaint 对象上的 TextSize 属性与“标准”Xamarin Forms FontSize 有何关系?

在图片中,您可以看到标签上的 40 码与绘制(paint)时的区别。我需要做什么才能使它们的大小相同?

最佳答案

正如@hankide 所提到的,这与 native 操作系统具有缩放 UI 元素的事实有关,因此应用在不同设备上“看起来大小相同”。

这对于按钮和操作系统正在绘制它们的所有内容非常有用。因此,如果按钮更大,操作系统只会放大文本。但是,使用 SkiaSharp,我们不知道您在绘制什么,因此我们无法进行任何缩放。如果我们进行缩放,图像会在高分辨率屏幕上变得模糊或像素化。

让所有东西都保持相同大小的一种方法是在绘制任何东西之前进行全局缩放:

var scale = canvasWidth / viewWidth;
canvas.Scale(scale);

这通常已经足够好,但有时您真的想在高分辨率屏幕上以不同的方式绘制项目。一个例子是平铺背景。与其在更大的 Canvas 上拉伸(stretch)图像,您可能只想平铺它 - 保留像素。

对于这个问题,您可以在绘制之前缩放整个 Canvas ,也可以只缩放文本:

var paint = new SKPaint {
TextSize = 40 * scale
};

这样,文本的大小增加了,但绘图的其余部分在更大的 Canvas 上。

我在 GitHub 上有一个示例:https://github.com/mattleibow/SkiaSharpXamarinFormsDemo

这比较 Xamarin.Forms、SkiaSharp 和 Native 标签。 (它们的大小应该完全相同)

关于xamarin - Xamarin 表单上的 SkiaSharp 文本大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42717021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com