Xamarin.Forms SystemFontOfSize缺少一些重载
本文关键字:重载 Forms SystemFontOfSize Xamarin | 更新日期: 2023-09-27 18:29:43
根据Xamarin.Forms文档,我应该能够使用Font.SystemFontOfSize([size], [FontAttributes])
方法设置字体属性。但是,当我创建一个新的Blank App(Xamarin.Forms Portable)项目并将以下代码添加到Portable项目中的App.cs时,由于某种原因,我无法访问Font.SystemFontOfSize(...)
的所有重载,也无法访问Xamarin.Forms.FontAttributes
枚举。
// FontExample/App.cs
using System;
using Xamarin.Forms;
namespace FontExample {
public class App {
public static Page GetMainPage() {
return new ContentPage {
Content = new Label {
Text = "Hello, Forms !",
Font = Font.SystemFontOfSize(14, FontAttributes.Italic)
},
};
}
}
}
SystemFontOfSize似乎只有两个重载,编译器给了我:
名称"FontAttributes"在当前上下文中不存在[…]
这个项目似乎已经有了所有的默认引用(.NET、Xamarin.Forms.Core、Xamarin.Forms.Xaml),我没有碰它们。
但是,如果我下载一个具有完全相同设置的示例项目(从具有相同引用的可移植项目中调用Font.SystemFontOfSize
),则该项目编译良好,并且我似乎可以访问所有Font.SystemFontOfSize
重载以及Xamarin.Forms.FontAttributes
枚举。
当我自己创建一个新项目时,为什么不能访问所有Xamarin.Forms API功能?我找不到新创建的Blank应用程序(Xamarin.Forms Portable)和上面链接的示例项目之间有任何显著差异。
听起来您的构建有些混乱。
尝试通过NuGet删除Xamarin.Forms引用;关闭项目并重新开放;通过NuGet重新添加Xamarin.Forms。当前的最新版本应该是v1.23x.
如果以上方法不起作用,请尝试进行干净的生成(在Visual Studio中,"生成"->"干净的解决方案"),然后尝试重新生成。
作为最后的手段,进入每个应用程序文件夹,删除"obj"answers"bin"目录并重新生成。
以上其中一项应该可以解决您的问题。
请注意,在Xamarin.Forms的早期版本中,使用Font.SystemFontOfSize({fontsize}, {font-attributes-enum})
存在问题,这将导致此过载使应用程序崩溃并出现异常。
除非他们现在已经纠正了这一点,否则你需要使用Font.SystemFontOfSize(30).WithAttributes(FontAttributes.Bold)
之类的东西来解决这个问题。