wpf 在xaml中更改切换按钮的图标样式

mznpcxlj  于 2023-03-04  发布在  其他
关注(0)|答案(2)|浏览(296)

我正试图根据isChecked的状态来更改用于切换按钮的图标,但是我能找到的关于如何使用图像来显示图标的唯一示例。
我不过,有静态图标样式,而不是图像,所以我想知道我怎么能做到这一点。
作为一个起点,如果我创建我的切换按钮像这样:

<ToggleButton Style="{StaticResource ToggleButtonStyle}">                             
     <Path Style="{StaticResource Test1IconStyle}"  HorizontalAlignment="Right" />                
 </ToggleButton>

则它将以ToggleButton样式和正确的Icon显示。
现在假设我单击按钮,我需要根据isChecked值将“Path”重置为“Test2IconStyle”。
这可能吗?

sqyvllje

sqyvllje1#

与其切换样式,我建议在资源中使用两个单独的路径,并根据条件进行切换,如下所示:

<StackPanel>
    <StackPanel.Resources>
        <Path x:Key="Test1"/>
        <Path x:Key="Test2"/>
    </StackPanel.Resources>
    <ToggleButton>
        <ToggleButton.Style>
            <Style TargetType="ToggleButton"
                   BasedOn="{StaticResource ToggleButtonStyle}">
                <Setter Property="Content" Value="{StaticResource Test1}"/>
                <Style.Triggers>
                    <Trigger Property="IsChecked" Value="True">
                        <Setter Property="Content"
                                Value="{StaticResource Test2}"/>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </ToggleButton.Style>
    </ToggleButton>
</StackPanel>
rta7y2nd

rta7y2nd2#

您还可以在2种状态(真和假)下更改图标

<ToggleButton>
      <ToggleButton.Content>
          <iconPacks:BootstrapIcons Kind="Sun"/>
      </ToggleButton.Content>
      <md:ToggleButtonAssist.OnContent>
          <iconPacks:BootstrapIcons Kind="Moon"/>
      </md:ToggleButtonAssist.OnContent>
  </ToggleButton>

相关问题