Casilla de verificación personalizada C # wpf question

votos
2

Empecé a profundizar en el diseño C # y WPF, así que no te preocupes si pido algunos conceptos básicos.

Estoy intentando portar una de nuestras aplicaciones de Internet a la aplicación de CA # y tener algunas dificultades.

Necesito 4 casillas de verificación que se parecen a esto. Si hace clic en ellos, deberían verse como el segundo.

http://frauneder.com/checkbox_example.jpg

Pude hacerlo con imágenes que cambian al hacer clic, pero echo de menos la propiedad ischecked.

La segunda pregunta: Quiero marcar / desmarcar las casillas de verificación usando las teclas 1-4 de mi teclado. ¿Cómo hago esto?

Gracias mucho por adelantado!

Publicado el 16/08/2009 a las 18:34
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
11

No estoy seguro de entender completamente tus preguntas, pero déjame intentarlo. También importa cuán profundo quieras ir aquí. Hay muchas maneras de despellejar a este gato.

1 - Creo que estás preguntando cómo usar la IsCheckedpropiedad para influenciar el aspecto de la CheckBox? La forma de hacerlo es volver a crear la plantilla CheckBoxy usar un desencadenador en la plantilla. Algo como esto:

<CheckBox>
    <CheckBox.Template>
        <ControlTemplate TargetType="CheckBox">
            <StackPanel Orientation="Horizontal">
                <Image x:Name="_image" Source="Unchecked.jpg"/>
                <ContentControl Content="{Binding Content}"/>
            </StackPanel>
            <ControlTemplate.Triggers>
                <Trigger Property="IsChecked" Value="True">
                    <Setter TargetName="_image" Property="Source" Value="Checked.jpg"/>
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
    </CheckBox.Template>
</CheckBox>

Hay más que considerar aquí, pero eso debería ayudarlo a comenzar.

2 - Puede usar InputBindingspara ejecutar un comando cuando el control recibe alguna entrada. Por lo tanto, puede definir un comando que verifique o desmarque el apropiado CheckBoxsegún el parámetro pasado al comando. Entonces puedes hacer algo como esto:

<CheckBox>
    <CheckBox.InputBindings>
        <KeyBinding Key="1" Command="{x:Static local:Commands.YourCommand}" CommandParameter="1"/>
    </CheckBox.InputBindings>
</CheckBox>

Nuevamente, hay muchas maneras de resolver sus problemas aquí. Espero que esto te guíe en la dirección correcta.

Respondida el 16/08/2009 a las 20:24
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more