如何更改ToggleButton IsPressed状态?

时间:2018-09-22 18:55:26

标签: wpf xaml

我想通过C#更改ToggleButton的IsPressed状态。不幸的是,我收到消息“属性或索引器'ButtonBase.IsPressed'不能在上下文中使用...。”。

是否可以通过C#代码进行设置?

Screen capture of example

2 个答案:

答案 0 :(得分:0)

您要查找的属性是“ IsChecked”。 IsPressed是ButtonBase上的一个属性,它指示在按钮上按下鼠标左键或空格键。

this.MyToggleButton.IsChecked = true;

答案 1 :(得分:0)

您可以使用此功能扩展ToggleButton并编写自己的ToggleButton。

public class PressableToggelButton : ToggleButton
{
    public new bool? IsChecked
    {
        get
        {
            return base.IsChecked;
        }
        set
        {
            base.IsChecked = value;

            if(value == true)
            {
                base.IsPressed = true;
            }
            else
            {
                base.IsPressed = false;
            }
        }
    }
}

请注意,新的IsChecked隐藏了基本属性,这可能导致副作用。请根据您的需求调整此想法。