[C# | WPF] Dynamisch erstellte Checkboxen ohne Haken



  • Hallo Community,

    habe gerade ein kleines Problem mit, wie der Titel bereits sagt, zur Laufzeit generierten Checkboxen in WPF. Wenn ich eine solche Checkbox "checke" oder "unchecke" ändert sich nichts am Visual der Checkbox, kein Haken, nichts. Programmtechnisch selbst funktioniert sie allerdings wie gewohnt (Events werden ausgelöst, 'IsChecked'-Property wird geändert, etc...). Interessant ist auch, dass es NUR bei dynamisch im Code-Behind generierten Checkboxen passiert (die XAML generierten verhalten sich korrekt), und auch NUR auf Windows 2008 Server R2.

    Bei Win7 und WinXP (x86/x64) gibt es keine Probleme. Auf allen Systemen ist das .NET-Framework 4.0 installiert.

    Hier mal wie ich die Checkboxen erstelle:

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
    // [...]
    // 'kvp' ist ein key-value-pair.
    // 'wrpDrives' ist ein WrapPanel control.
    
        CheckBox chk     = new CheckBox();
        chk.Margin       = new Thickness(10, 5, 0, 0);
        chk.IsChecked    = false;
        chk.Content      = kvp.Key;
        chk.Foreground   = Brushes.White;
        chk.Name         = kvp.Value.Name;
        chk.Checked      += this.chkDrives_Changed;
        chk.Unchecked    += this.chkDrives_Changed;
    
        this.wrpDrives.Children.Add(chk);
    // [...]
    }
    

    Wie gesagt, ich habe momentan nur auf Win2008R2 ein Problem mit dem Code... Fehlt mir was? Hab' ich was vergessen? Gibt es irgendeinen Known-Bug in der Richtung?

    Für Hilfe bin ich sehr dankbar 🙂
    Falls noch jemand Infos braucht, geb' uch auch gerne.

    Gruß
    PuerNoctis

    EDIT: Das Target-Framework ist bei mir auch 4.0, da ich davon was brauche, daher habe ich's noch nicht mit 3.5 oder niedriger probiert...



  • Oh mein Gott, wie peinlich. Aber da musste ich echt erstmal drauf kommen...

    chk.Foreground   = Brushes.White;
    

    Die Zeile ist das Problem! Auf Win2008 R2, wo auch alle Visual Styles deaktiviert sind, setzt chk.Foreground nicht nur die Farbe des Textcontents, sondern auch die Farbe des Hakens -- und Weiß auf Weiß ist nunmal nicht wirklich gut sichtbar.

    Hier muss ich explizit die Farbe des Label-Foregrounds setzen...
    Jemand eine Idee wie ich das mache?

    Gruß
    PuerNoctis


Anmelden zum Antworten