2010-09-20 23 views
11

Nella mia semplice applicazione WPF utilizzo il controllo CheckBox regolare. Sembra che io possa controllare lo sfondo e il primo piano. La proprietà in primo piano controlla il testo accanto alla casella di controllo ma non il segno di spunta. Di base lo sfondo è bianco, il mio primo piano è molto vicino al bianco perché ho uno sfondo scuro.Segno di spunta in una casella di controllo

Quando eseguo l'applicazione sulla mia macchina Windows 7 di sviluppo, il segno di spunta è nero. Sul computer Win XP il segno di spunta è verde. Tuttavia su un'altra macchina Win XP il segno di spunta è invisibile perché è bianco su bianco.

La mia domanda è "Come posso controllare il colore di un segno di spunta della mia casella di controllo?".

risposta

16

Questo problema si verifica su Windows XP che utilizza il tema "Windows classico" o l'utilizzo di Desktop remoto. Il segno di spunta di una casella di controllo prende colore del colore di primo piano per l'intero CheckBox.

<CheckBox Foreground="White" Content="My Text" /> 

sono stato in grado di risolvere questo problema modificando il codice qui sotto:

<CheckBox> 
    <Label Foreground="White">My Text</Label> 
</CheckBox> 
+0

Aveva esattamente lo stesso problema. Grazie! – smvlad

3

È necessario eseguire l'override del ControlTemplate del CheckBox.

Here's an example su MSDN.

+0

grazie. Non è così semplice come speravo ma ci sto lavorando. – Vadim

+0

Se hai Blend, puoi sempre usare il comando Modifica modello (mi dispiace, non ho Miscela qui, quindi non posso dirti il ​​comando esatto) per ottenere il modello predefinito. Oppure puoi usare qualcosa come Snoop. –

0

In alternativa, penso che potresti definire uno stile che definisce un trigger che cambia il colore come desideri. Dal momento che è interessante proverò e inserirò un campione in un po '.

Modifica: non importa, il CheckBox utilizza BulletChrome che esegue internamente alcuni rendering e non espone le proprietà interessanti che potrebbero essere utilizzate per collegarsi.

+0

Grazie mille per averlo esaminato. – Vadim

Problemi correlati