【问题标题】:Xamarin.Forms SystemFontOfSize missing some overloadsXamarin.Forms SystemFontOfSize 缺少一些重载
【发布时间】:2015-01-04 03:08:45
【问题描述】:

根据 Xamarin.Forms documentation,我应该能够使用 Font.SystemFontOfSize([size], [FontAttributes]) 方法设置字体属性。但是当我创建一个新的空白应用程序(Xamarin.Forms 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),我没有碰它们。

但是,如果我使用完全相同的设置下载a sample project(从具有相同引用的便携式项目中调用Font.SystemFontOfSize),该项目编译得很好,我似乎可以访问所有Font.SystemFontOfSize 重载以及Xamarin.Forms.FontAttributes 枚举。

为什么我自己创建新项目时无法访问所有 Xamarin.Forms API 功能?我找不到新创建的空白应用程序 (Xamarin.Forms Portable) 和上面链接的示例项目之间的任何显着差异。

【问题讨论】:

    标签: c# xamarin xamarin.forms


    【解决方案1】:

    听起来您的构建在某处变得混乱。

    尝试通过 NuGet 删除 Xamarin.Forms 引用;关闭项目并重新打开;通过 NuGet 重新添加 Xamarin.Forms。当前最新版本应该是 v1.2.3x 之类的。

    如果上述方法不起作用,请尝试进行干净构建(在 Visual Studio 中,构建 -> 清洁解决方案'),然后尝试重新构建。

    作为最后的手段,进入每个应用程序文件夹并删除“obj”和“bin”目录并重建。

    以上方法之一应该可以解决您的问题。

    注意 - 但是,在以前版本的 Xamarin.Forms 中使用 Font.SystemFontOfSize({fontsize}, {font-attributes-enum}) 会导致 此重载 崩溃 带有异常的应用程序。

    除非他们现在已更正此问题,否则您将需要使用 Font.SystemFontOfSize(30).WithAttributes(FontAttributes.Bold) 之类的东西来解决此问题。

    【讨论】:

    • 谢谢皮特!卸载并重新安装 Xamarin.Forms 为我解决了这个问题!他们应该在 Xamarin.Forms 旁边有很大的尖叫“BETA”标签。这东西似乎远未准备好投入生产使用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    • 2011-04-24
    • 2017-08-18
    • 1970-01-01
    相关资源
    最近更新 更多