В Xamarin.Forms SystemFontOfSize отсутствуют некоторые перегрузки

Согласно документации Xamarin.Forms , я должен иметь возможность устанавливать атрибуты шрифта, используя метод 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), я их не трогал.

Но если я загружу пример проекта с точно такой же настройкой (вызов Font.SystemFontOfSize из портативного проект с теми же ссылками), проект компилируется нормально, и у меня, похоже, есть доступ ко всем перегрузкам Font.SystemFontOfSize, а также к перечислению Xamarin.Forms.FontAttributes.

Почему у меня нет доступа ко всем функциям Xamarin.Forms API при создании нового проекта самостоятельно? Я не могу найти существенной разницы между недавно созданным пустым приложением (Xamarin.Forms Portable) и примером проекта, ссылка на который приведена выше.


person Alex    schedule 07.11.2014    source источник


Ответы (1)


Похоже, ваша сборка где-то запуталась.

Попробуйте удалить ссылки Xamarin.Forms через NuGet; закрыть проект и снова открыть; повторно добавьте Xamarin.Forms через NuGet. Текущая последняя версия должна быть похожа на v1.2.3x.

Если описанный выше подход не работает, попробуйте выполнить чистую сборку (в Visual Studio выберите «Сборка» -> «Чистое решение»), а затем попробуйте выполнить повторную сборку.

В крайнем случае зайдите в каждую папку приложения и удалите каталоги «obj» и «bin» и перестройте.

Один из вышеперечисленных должен решить вашу проблему.

Обратите внимание: однако существует проблема с использованием Font.SystemFontOfSize({fontsize}, {font-attributes-enum}) в предыдущей версии Xamarin.Forms, из-за которой эта перегрузка приводила к сбою приложения. с исключением.

Если они сейчас не исправили это, вам нужно будет использовать что-то вроде Font.SystemFontOfSize(30).WithAttributes(FontAttributes.Bold), чтобы обойти это.

person Pete    schedule 07.11.2014
comment
Спасибо Пит! Удаление и повторная установка Xamarin.Forms решили проблему для меня! У них должен быть большой кричащий ярлык БЕТА рядом с Xamarin.Forms. Похоже, эта штука далека от готовности к промышленному использованию. - person Alex; 07.11.2014