改变按钮的图像,点击组合框

本文关键字:组合 按钮 图像 改变 | 更新日期: 2023-09-27 18:08:41

我正在尝试这样的事情:作为我的表单加载我有一个图像按钮(这部分工作良好)和一个复选框。当我选中复选框,按钮的图像应该改变。我已经附上了我的xaml代码与此。请过目并提出修改意见。

<CheckBox Name="checkbox" Margin="141,148,336,147"/>
<Button Foreground="Black" Height="50" Margin="238,206,179,64">
    <Button.Template>
        <ControlTemplate TargetType="{x:Type Button}">
            <StackPanel Orientation="Horizontal">
                <Image>
                    <Image.Style>
                        <Style>
                            <Setter Property="Image.Source" 
                        Value="Images/cancel_16.ico" />
                            <Style.Triggers>
                                <DataTrigger Binding="{Binding ElementName=checkbox, Path=IsChecked, 
                             RelativeSource={RelativeSource AncestorType=
                            {x:Type Button}}}" Value="True">
                                    <Setter Property="Image.Source" 
                                Value="Images/cancel_16grayscale.ico" />
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </Image.Style>
                </Image>
                <ContentPresenter Content="{TemplateBinding Content}" 
            Margin="5,0,0,0" />
            </StackPanel>
        </ControlTemplate>
    </Button.Template>
</Button>

改变按钮的图像,点击组合框

只需删除RelativeSource并添加UpdateSourceTrigger就像这样在您的样式

 <Image.Style>
      <Style>
          <Style.Triggers>
                <DataTrigger Binding="{Binding ElementName=checkbox, Path=IsChecked,UpdateSourceTrigger=PropertyChanged}"                              
                             Value="True">
                      <Setter Property="Image.Source"                                                          
                              Value="Back_jeans.jpg" />
                 </DataTrigger>
                 <DataTrigger Binding="{Binding ElementName=checkbox, Path=IsChecked,UpdateSourceTrigger=PropertyChanged}"   
                               Value="False">
                        <Setter Property="Image.Source"
                                Value="Blue_Front_Jeans.jpg" />
                 </DataTrigger>
           </Style.Triggers>
      </Style>
</Image.Style>