web-dev-qa-db-fra.com

Créer un style en code derrière

Est-ce que quelqu'un sait comment créer un style wpf dans le code derrière, je ne trouve rien sur le Web ou les documents MSDN. J'ai essayé mais cela ne fonctionne pas:

Style s = new Style(typeof(TextBlock));
s.RegisterName("Foreground", Brushes.Green);
s.RegisterName("Text", "Green");

breakInfoControl.dataTextBlock.Style = s;
31
James

Vous devez ajouter des paramètres au style plutôt que d'utiliser RegisterName. Le code suivant, dans l'événement Window_Loaded, créera un nouveau style TextBlock qui deviendra la valeur par défaut pour toutes les instances d'un TextBlock dans la fenêtre. Si vous préférez le définir explicitement sur un TextBlock particulier, vous pouvez définir la propriété Style de ce contrôle plutôt que d'ajouter le style au dictionnaire des ressources.

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    Style style = new Style(typeof (TextBlock));
    style.Setters.Add(new Setter(TextBlock.ForegroundProperty, Brushes.Green));
    style.Setters.Add(new Setter(TextBlock.TextProperty, "Green"));
    Resources.Add(typeof (TextBlock), style);
}
74
mjeanes

Cela devrait vous procurer ce dont vous avez besoin:

Style style = new Style
{
    TargetType = typeof(Control)
};
style.Setters.Add(new Setter(Control.ForegroundProperty, Brushes.Green));
myControl.Style = style;
9
oltman