J'ai une étiquette qui ressemble à ceci:un attribut à une valeur de style par défaut dans XAML Xamarin.Forms
<Label Style="{StaticResource myStyle}" x:Name="TestLabel">
Le style lié définit la couleur d'arrière-plan de l'étiquette à la couleur rouge.
Puis, plus tard dans le code, je fais ceci:
TestLabel.SetValue(Label.BackgroundColorProperty, Color.Green);
Ceci définit la couleur d'arrière-plan de l'étiquette verte.
Mais ensuite, je dois effacer la couleur verte que j'ai réglée manuellement, et j'ai besoin de la réinitialiser à la valeur par défaut, dictée par le style lié (dans ce cas, le rouge).
donc je fais ceci:
TestLabel.ClearValue(Label.BackgroundColorProperty);
Mais au lieu de revenir en arrière au rouge, la couleur de fond est alors retiré complètement et devient transparente (ce qui est le paramètre par défaut pour une étiquette, sans styles qui s'y rattachent). TestLabel.SetValue (Label.BackgroundColorProperty, Color.Red) ;, mais je ne peux pas faire cela, car j'ai besoin de la couleur pour revenir à tout ce qui est attaché au style est, puisque différentes étiquettes ont des styles différents attachés)
Utilisez-vous le modèle mvvm? –
Pourquoi ne pas simplement garder la trace de la couleur précédente et la régler lorsque vous essayez de la réinitialiser. 'var color = TestLabel.BackgroundColor; ... TestLabel.BackgroundColor = color; ' – Ada