Création d'un Style dans le 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é cela mais cela ne fonctionne pas:

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

breakInfoControl.dataTextBlock.Style = s;
30
demandé sur Lipis 2009-11-13 17:00:54

2 réponses

Vous devez ajouter des setters 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 de 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);
}
71
répondu mjeanes 2009-11-13 14:31:53

Cela devrait vous obtenir ce dont vous avez besoin:

Style style = new Style
{
    TargetType = typeof(Control)
};
style.Setters.Add(new Setter(Control.ForegroundProperty, Brushes.Green));
myControl.Style = style;
8
répondu oltman 2009-11-13 14:31:09