C#wpf问题自定义复选框

时间:2009-08-16 17:34:41

标签: c# wpf checkbox

我刚开始深入了解C#和WPF设计,所以不介意我要求一些基础知识。

我正在尝试将我们的一个互联网应用程序移植到c#应用程序并遇到一些困难。

我需要4个复选框,看起来像这样。如果单击它们,它们应该看起来像第二个。

http://frauneder.com/checkbox_example.jpg

我能够通过点击改变的图像来做到这一点,但在那里我想念缺血的财产。

第二个问题: 我想使用键盘上的1-4键选中/取消选中复选框。我该怎么做?

提前非常好!

1 个答案:

答案 0 :(得分:11)

我不确定我是否完全理解你的问题,但让我试一试。这一切都很重要,你也想去这里。有很多方法可以给这只猫上皮。

1 - 我想你问的是如何使用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>

这里还有更多需要考虑的问题,但这应该可以让你开始。

2 - 当控件收到某些输入时,您可以使用InputBindings执行命令。因此,您可以根据传递给命令的参数定义检查或取消选中相应CheckBox的命令。然后你可以做这样的事情:

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

同样,有很多方法可以解决您的问题。希望这会引导你朝着正确的方向前进。