gpt4 book ai didi

c# - 使用隐藏代码触发按钮的 IsPressed 属性

转载 作者:行者123 更新时间:2023-11-30 17:49:10 33 4
gpt4 key购买 nike

我有一个带按钮的菜单。当用户按下按钮时,它将执行相同的方法,直到他释放按钮。换句话说,我在 MouseDown 上启动任务,在 MouseUp 上停止该任务。

这是我的按钮

<Button
x:Name="pushButton"
Focusable="False"
Content="{Binding ButtonLabel}"
PreviewMouseDown="StartTask"
PreviewMouseUp = "StopTask"
/>

我希望能够使用键盘快捷键按下按钮因此我订阅了主窗口事件 PreviewKeyDownPreviewKeyUp。这些事件被正确触发,我可以在按下键时启动任务,并在按下键时停止任务。 我想让按钮将其状态更改为按下状态,以便用户可以直观地看到它。如何使用 C# 将按钮的状态更改为已按下?


编辑

我最终通过反射更改了它的 IsPressed 值,因为 setter 是私有(private)的:

typeof(Button).GetMethod("set_IsPressed", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(BtnInstance , new object[] { true }); 

最佳答案

这可能会帮助您实现目标。在 VS2013 中,我右键单击按钮,选择“编辑模板”,然后选择“编辑副本”。然后在它创建的样式中,它创建的 ControlTemplate 中有一个“RenderPressed”属性。它默认绑定(bind)到 IsPressed,但我在我的 ViewModel 中将绑定(bind)更改为 bool,并且我能够切换按钮。

关于c# - 使用隐藏代码触发按钮的 IsPressed 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22073417/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com