2009-08-16 2 views
2

Я только начал углубляться в дизайн C# и WPF, поэтому не возражаете, если я попрошу некоторые основы.C# wpf question custom checkbox

Я пытаюсь перенести одно из наших интернет-приложений на приложение C# и с некоторыми трудностями.

Мне нужно 4 флажка, которые выглядят так. Если вы нажмете на них, они должны выглядеть как второй.

http://frauneder.com/checkbox_example.jpg

Я был в состоянии сделать это с изображениями, которые меняются по щелчку, но там я пропускаю IsChecked недвижимость.

Второй вопрос: Я хочу проверить/снять флажки с помощью клавиш 1-4 на моей клавиатуре. Как мне это сделать?

Thanx очень заблаговременно!

ответ

11

Я не уверен, что полностью понимаю ваши вопросы, но позвольте мне попробовать. Все зависит от того, насколько глубоко вы хотите пойти сюда. Есть много способов обмануть этого кота.

- Я думаю, что вы спрашиваете, как использовать IsChecked свойство влиять на внешний вид CheckBox? Способ сделать это - переформатировать CheckBox и использовать триггер в шаблоне. Что-то вроде этого:

<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> 

Здесь еще нужно рассмотреть, но это должно вас начать.

- Вы можете использовать InputBindings для выполнения команды, когда какой-либо вход принят элементом управления. Таким образом, вы можете определить команду, которая проверяет или отменяет соответствующий CheckBox на основе параметра, переданного команде. Затем вы можете сделать что-то вроде этого:

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

Опять же, здесь есть много способов решить ваши проблемы. Надеюсь, это направит вас в правильном направлении.

+0

THX для этого! начинаю понимать :) – 2009-08-18 09:40:24