/ / WPF: Usuń wyraźny kolor pierwszego planu kontroli - c #, wpf-controls

WPF: Usuń jawny kolor pierwszego planu kontrolki - c #, wpf-controls

Dwa przykładowe TextBoxy w standardowym schemacie kolorów i następujący konstruktor uzyskują Box1 z szarym planem i Box2 z czarnym pierwszym planem, ponieważ kolor pierwszego planu Box2 został wyraźnie ustawiony.

public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();

Box2.Foreground = Brushes.Black;
Box1.IsEnabled = false;
Box2.IsEnabled = false;
}
}

Chciałbym „odznaczyć” kolor pierwszego planu, aby Box2 „powrócił” do domyślnego wyłączonego koloru i miał szary pierwszy plan, gdy IsEnabled ma wartość false. czy to możliwe? Jeśli tak, jak to się robi?

Ustawienie właściwości Pierwszy plan na wartość null nie powodujemieć pożądany efekt. Chcę uniknąć jawnego ustawiania koloru pierwszego planu na Szary, jeśli to możliwe, ponieważ nie byłby zgodny z niestandardowymi schematami kolorów.

Odpowiedzi:

5 dla odpowiedzi № 1

Nie jestem pewien, czy to masz na myśli, ale spróbuj następującego kodu:

public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();

Box2.Foreground = Brushes.Black;
Box1.IsEnabled = false;
Box2.IsEnabled = false;
Box2.ClearValue(TextBox.ForegroundProperty);
}
}

0 dla odpowiedzi nr 2

Użyj zdarzenia IsEnabledChanged, aby ustawić pierwszy plan pola.

public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();

Box2.Foreground = Brushes.Black;
Box1.IsEnabled = false;
Box2.IsEnabled = false;
Box1.IsEnabledChanged += new DependencyPropertyChangedEventHandler(label1_IsEnabledChanged);
}

void label1_IsEnabledChanged( object sender, DependencyPropertyChangedEventArgs e ) {
//Set the foreground you want here!
}

}

Ale jeśli nie chcesz jawnie ustawić koloru, spróbuj ustawić go na Transparent o.O.