2009-08-16 7 views
2

Ich habe gerade angefangen, tiefer in C# und WPF Design, also nichts dagegen, wenn ich nach einigen Grundlagen fragen.C# wpf Frage benutzerdefinierte Kontrollkästchen

Ich versuche, eine unserer Internet-Anwendungen zu einer C# -Anwendung zu portieren und einige Schwierigkeiten zu haben.

Ich brauche 4 Checkboxen, die so aussehen. Wenn Sie auf sie klicken, sollten sie wie der zweite aussehen.

http://frauneder.com/checkbox_example.jpg

Ich konnte es mit Bildern tun, die auf Klick zu ändern, aber es fehlt mir der IsChecked Eigenschaft. Die zweite Frage: Ich möchte die Kontrollkästchen mit den Tasten 1-4 auf meiner Tastatur aktivieren/deaktivieren. Wie mache ich das?

Vielen Dank im Voraus!

Antwort

11

Ich bin mir nicht sicher, ob ich Ihre Fragen vollständig verstehe, aber lassen Sie es mich versuchen. Es ist alles wichtig, wie tief Sie auch hier sein wollen. Es gibt viele Möglichkeiten, diese Katze zu häuten.

- Ich glaube, Sie zu fragen, wie die IsChecked Eigenschaft verwenden, um das Aussehen der CheckBox zu beeinflussen? Der Weg dazu besteht darin, die CheckBox Vorlage neu zu erstellen und einen Trigger in der Vorlage zu verwenden. So etwas wie das:

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

Es gibt hier mehr zu beachten, aber das sollte Sie beginnen.

- Sie können InputBindings verwenden, um einen Befehl auszuführen, wenn eine Eingabe vom Steuerelement empfangen wird. Sie können also einen Befehl definieren, der das entsprechende CheckBox basierend auf dem Parameter, der an den Befehl übergeben wird, abhakt. Dann können Sie etwas tun:

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

Auch hier gibt es viele Möglichkeiten, Ihre Probleme zu lösen. Hoffentlich steuert das dich in die richtige Richtung.

+0

Danke dafür! beginn zu verstehen :) –