Existe-t-il un moyen de définir la couleur du texte par défaut sur une couleur spécifique pour tous les éléments de page contenant du texte?
Cela n'a aucun sens pour moi de devoir définir un attribut "TextColor" pour chaque élément contenant du texte.
Merci!
4 Réponses :
Vous pouvez définir le style des éléments contenant du texte dans App.xaml. Cela définira la TextColor pour toutes les étiquettes, boutons, ... que vous utilisez dans votre application:
<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> ...
Malheureusement, vous devrez ajouter une nouvelle balise Style pour tous les éléments visuels contenant du texte. J'ai cherché un moyen plus propre de définir des styles pour tous les éléments avec du texte il y a quelque temps. Mais cela semble être la manière la plus propre de le faire ...
Espérons que Xamarin.Forms ajoutera une manière plus générique de gérer le style.
Vous pouvez utiliser les styles comme indiqué ci-dessus par DenseCrab. Et vous pouvez également créer une classe différente qui dérive de la classe Label. Et vous pouvez définir certaines propriétés par défaut comme la couleur.
Depuis Xamarin Forms 2.6.0, vous pouvez utiliser le style CSS. Cela vous permet de définir globalement des styles pour des éléments ou des classes css spécifiques.
Ajoutez le fichier styles.css
au dossier YouProject.Shared> Assets
avec le contenu suivant. (Notez le symbole ^
. Il sélectionne n'importe quel élément avec cette classe de base)
<MasterDetailPage.Resources> <StyleSheet Source="/Assets/styles.css" /> </MasterDetailPage.Resources>`
Ajoutez une ressource à une vue globale (par exemple, vous utilisez MasterDetailPage
) pour charger le fichier css:
^Label { color: red; } ^Entry { color: red; } ^Button { color: red; }
Vous devez créer un rendu personnalisé pour Label et Entry ou tout autre contrôle sous Android et iOS et vous pouvez y appliquer la couleur directement
[assembly: ExportRenderer (typeof (Label), typeof (IOSLabelRenderer))]
test d'espace de noms
{
classe publique IOSLabelRenderer: LabelRenderer
{
protected override void OnElementChanged (ElementChangedEventArgs
vous pouvez également créer la même chose pour Android
Il n'existe pas de classe de base pour tous les éléments visuels contenant la propriété Text. Vous devez donc créer un style implicite distinct pour chaque élément visuel souhaité.