检查切换按钮状态并使用C#手动触发

时间:2019-01-09 00:38:42

标签: c# .net wpf

我正在尝试使用C#以编程方式触发ToggleButton。

我有一个ToggleButton开关,它在静音和未静音之间成像。如果将按钮切换为静音,我将获得预期的图像,但是如果更改VolumeBar,则必须从C#触发按钮,因为如果不能自动执行该按钮。

<ToggleButton x:Name="MuteBtn" Height="20" Width="20" Background="Transparent" Click="MuteButton_Click">
    <ToggleButton.Style>
        <Style TargetType="{x:Type ToggleButton}">
            <Setter Property="Content">
                <Setter.Value>                                               
                    <Image Source="/Resources/audio-volume_on.ico" />
                </Setter.Value>
            </Setter>
            <Style.Triggers>
                <Trigger Property="IsChecked" Value="True">
                    <Setter Property="Content">
                        <Setter.Value>
                            <Image Source="/Resources/volume_off.ico" />
                        </Setter.Value>
                    </Setter>
                </Trigger>
            </Style.Triggers>
        </Style>
    </ToggleButton.Style>
</ToggleButton>

我有一个名为VolumeBar_ValueChanged的类,该类必须根据VolumeBar值来切换按钮。

2 个答案:

答案 0 :(得分:0)

正如@Anu Viswan所说,isChecked属性可以解决您的问题。

答案 1 :(得分:0)

尝试将ControlTemplate用于ToggleButton。

    <ToggleButton>
        <ToggleButton.Style>
            <Style TargetType="ToggleButton">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="ToggleButton">
                            <Image x:Name="borderImage" Source="Image1.jpg"/>
                            <ControlTemplate.Triggers>
                                <Trigger Property="IsChecked" Value="true">
                                    <Setter Property="Source" Value="Image2.jpg" TargetName="borderImage"/>
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </ToggleButton.Style>
    </ToggleButton>