2010-09-20 41 views
11

En mi aplicación WPF simple, uso el control CheckBox regular. Parece que puedo controlar el fondo y el primer plano. La propiedad de primer plano controla el texto junto a la casilla de verificación, pero no la marca de verificación. Por defecto, el fondo es blanco, mi primer plano está muy cerca del blanco porque tengo un fondo de forma de ventana oscura.Marca de verificación en una casilla de verificación

Cuando ejecuto la aplicación en mi máquina de desarrollo Windows 7, la marca de verificación es negra. En la computadora Win XP, la marca de verificación es verde. Sin embargo, en otra máquina Win XP, la marca de verificación es invisible porque es blanca sobre blanco.

Mi pregunta es "¿Cómo puedo controlar el color de una marca de verificación de mi casilla de verificación?".

Respuesta

16

Este problema ocurre en Win XP que utiliza el tema "Windows Classic" o que utiliza Escritorio remoto. La marca de verificación de viñeta de una casilla de verificación toma el color del color de primer plano para toda la casilla de verificación.

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

que era capaz de solucionar este problema cambiando el código de abajo:

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

Tenía exactamente el mismo problema. ¡Gracias! – smvlad

3

Debe sobrescribir la ControlTemplate de la CheckBox.

Here's an example en MSDN.

+0

gracias. No es tan simple como esperaba, pero estoy investigando. – Vadim

+0

Si tiene Blend, siempre puede usar el comando Editar plantilla (lo siento, no tengo Blend aquí, así que no puedo decirle el comando exacto) para obtener la plantilla predeterminada. O bien, puedes usar algo como Snoop. –

0

Alternativamente, creo que podría definir un estilo que defina un disparador que cambie el color como lo desee. Como es interesante, lo probaré y publicaré una muestra en un momento.

Edición: no importa, el CheckBox usa BulletChrome que hace algo de renderizado internamente y no expone ninguna propiedad interesante que pueda usarse para enganchar.

+0

Muchas gracias por investigarlo. – Vadim

Cuestiones relacionadas