Xamarin Forms - Установить TextColor по умолчанию - PullRequest
2 голосов
/ 05 марта 2019

Есть ли способ установить цвет текста по умолчанию на определенный цвет для всех элементов страницы, которые содержат текст?

Мне не имеет смысла устанавливать атрибут TextColor для каждого элемента, содержащего текст.

Спасибо!

Ответы [ 4 ]

2 голосов
/ 05 марта 2019

Вы можете установить стиль элементов, содержащих текст, в App.xaml. Это установит TextColor для всех меток, кнопок, ... которые вы используете в своем приложении:

    <Style TargetType="Label">
        <Setter Property="TextColor" Value="Red" />
    </Style>

    <Style TargetType="Button">
        <Setter Property="TextColor" Value="Red" />
    </Style>

    <Style TargetType="Entry">
        <Setter Property="TextColor" Value="Red" />
    </Style>

    <Style TargetType="Editor">
        <Setter Property="TextColor" Value="Red" />
    </Style>
...

К сожалению, вам придется добавить новый тег стиля для всех визуальных элементов, содержащих текст. Я давно искал более чистый способ определения стилей для всех элементов с текстом. Но это, кажется, самый чистый способ сделать это ...

Надеюсь, Xamarin.Forms добавит более общий способ обработки стилей.

0 голосов
/ 06 марта 2019

Вы должны создать пользовательский рендер для Label and Entry или любого другого элемента управления в Android и iOS, и вы можете применить цвет прямо там
[assembly: ExportRenderer(typeof(Label), typeof(IOSLabelRenderer))] namespace test { public class IOSLabelRenderer : LabelRenderer { protected override void OnElementChanged(ElementChangedEventArgs<Label> e) { base.OnElementChanged(e); Control.TextColor = UIColor.Brown; } } } вы можете создать то же самое для Android также

0 голосов
/ 06 марта 2019

Начиная с Xamarin Forms 2.6.0 вы можете использовать стили CSS.Это позволяет вам устанавливать стили для элементов или определенных классов CSS глобально.

Добавить файл styles.css в папку YouProject.Shared > Assets со следующим содержимым.(Обратите внимание на символ ^. Он выбирает любой элемент с этим базовым классом)

^Label {
    color: red;
}

^Entry {
    color: red;
}

^Button {
    color: red;
}

Добавление ресурса в глобальное представление (например, вы используете MasterDetailPage) для загрузки файла CSS:

<MasterDetailPage.Resources>
    <StyleSheet Source="/Assets/styles.css" />
</MasterDetailPage.Resources>`
0 голосов
/ 05 марта 2019

Вы можете использовать стили, как показано выше DenseCrab.И вы также можете создать другой класс, который устройства из класса Label.И вы можете установить некоторые свойства по умолчанию, такие как цвет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...