我正在使用wpf c#Window。 我有一个如下定义的按钮:
<Button x:Name="but" Style="{DynamicResource ButtonStyle13}" / >
我的ButtonStyle是这样的:
<VisualState x:Name="Pressed">
//bla bla (my style) goes here
现在,当我使用这种视觉状态时,按下按钮时视觉效果会发生变化,但之后会恢复正常。我希望按钮处于“按下”状态,它将保持“按下”直到我按下另一个按钮。
我试着改变它:
<VisualState x:Name="myPre">
然后在代码中使用:
VisualStateManager.GoToElementState(but, "myPre", true);
完全没有剂量。然后我用
VisualStateManager.GoToState(but, "myPre", true);
只要鼠标悬停在按钮上,就会按下我的按钮,但是当它失去焦点(鼠标移动)时,它会恢复正常。
我希望我已经清楚了。 如何让按钮保持在按下的视觉状态,直到我决定(在代码内)取消按钮?
答案 0 :(得分:6)
如果您需要Button
按下它后将保持按下状态 - 然后使用ToggleButton
。
<ToggleButton IsChecked='True'/>
答案 1 :(得分:0)
正如我所看到的,这个问题已经有一段时间了,但这与我遇到的问题完全相同。 Anatolii Gabuza 的回答让我走上了正轨。 我不知道以前是否有过,但现在有以下可能性。
<VisualStateGroup x:Name="CheckStates">
<VisualState x:Name="Checked">
<Storyboard>
<... do some Animation.. >
</Storyboard>
</VisualState>
<VisualState x:Name="Unchecked" />
<VisualState x:Name="Indeterminate" />
</VisualStateGroup>
在msdn中有如下解释: MSDN-Article ToggleButton Styles and Templates