按下另一个按钮时的按钮按下效果

本文关键字:按钮 另一个 | 更新日期: 2023-09-27 18:21:38

在我的WP7应用程序中使用silverlight控件,

我有两个按钮,我想当我按下一个按钮时,另一个按钮似乎也被按下了(改变颜色以反转…等)

类似于wp7手机上的原生键盘,当较大的按钮出现在你的拇指上方时

我试着把重点放在他们两个身上,但不可能

-详细说明-

通常,当你按下按钮时,按钮样式会根据主题而变化

例如:如果主题是深色的,则按钮变为白色,文本变为黑色。但如果主题是白色的,则单击时按钮将变为黑色。

我的目标是在按下另一个按钮时,将这种行为模仿成一个按钮。

按下另一个按钮时的按钮按下效果

在点击事件中,您可以使用

VisualStateManager.GoToState(Button1, "Pressed", true);

然而,要返回到Normal状态,您必须知道单击何时结束。LeftMouseButtonUp无法工作,因为没有鼠标。

所以你可以设置一个定时器并恢复状态。虽然丑陋,但它很管用。

顺便说一句:我怀疑你可能想用不同的方式来获得你需要的结果。

我没有做太多的wp7开发,但我相信正常、活动和按下的外观是作为按钮的不同状态实现的,您可以通过程序设置状态。这篇文章应该更详细地解释它,但与手动设置背景颜色相比,这种方法的优势在于,它应该自动利用在这些状态之间配置的任何转换,以及黑=>白或白=>黑主题相关的更改也将为您完成。

http://www.timmykokke.com/2010/11/using-visual-states-in-custom-controls-in-silverlight/

更新:在一个的单击处理程序中,设置另一个的后台属性。

在伪代码中:

Button button1
ToggleButton button2
Button1.MouseDown:
    Set button2 pressed state to true
Button2.MouseUp:
    Set button2 pressed state to false

尝试使用MS Expression Blend自定义行为,详细信息