Windows phone 7图像复选框

本文关键字:复选框 图像 phone Windows | 更新日期: 2023-09-27 18:01:48

我试图创建一个简单的复选框,这是一个图像而不是经典的。我设法创建控件并分配它不同的行为,但我不能使它在检查/取消检查时工作。下面是代码:

<UserControl.Resources>
        <ControlTemplate x:Key="CheckboxImageTemplate" TargetType="CheckBox">
            <Image Name="imgTreble" MinWidth="100" Source="Images/treble_unchecked.png"/>
        </ControlTemplate>
    </UserControl.Resources>

<StackPanel x:Name="LayoutRoot" Background="{StaticResource PhoneForegroundBrush}">
        <CheckBox Height="72" HorizontalAlignment="Left" x:Name="checkBox1" Background="White" VerticalAlignment="Top" Template="{StaticResource CheckboxImageTemplate}" >
            <Custom:Interaction.Triggers>
                <Custom:EventTrigger EventName="Checked">
                    <ic:ChangePropertyAction PropertyName="Source" TargetName="imgTreble" Value="Images/treble_checked.png"/>
                </Custom:EventTrigger>
                <Custom:EventTrigger EventName="Unchecked">
                    <ic:ChangePropertyAction PropertyName="Source" TargetName="imgTreble" Value="Images/treble_unchecked.png"/>
                </Custom:EventTrigger>
            </Custom:Interaction.Triggers>
        </CheckBox>
    </StackPanel>

我认为问题是我试图改变一个控件的属性(在这种情况下,复选框)控件模板的项目(图像)。可能有一个问题与TargetName,我应该以不同的方式引用如何告诉EventTrigger寻找图像和改变它的源,但我不知道如何

Windows phone 7图像复选框

为此,您需要在复选框的ControlTemplate中使用VisualStates。

这是一个非常好的文章,定制一个复选框作为切换按钮。

WP7与VisualStates一起工作:如何从CheckBox中创建ToggleSwitch

您可以使用相同的方法为每个视觉状态呈现图像。

不应该这样做,您应该重新模板(设置自定义样式)复选框以获得所需的输出。

在自定义样式中,使用"Checked" VisualState来隐藏和显示适当的图像