我是WPF的新手,我只是在按下按钮时尝试运行一些代码(使用任何类型的输入设备)。
然而,当我看到Button事件时,我看到了很多匹配事件:
我不认为Click适合我,因为我需要知道按钮何时释放。 那么,我是否必须为每个事件编写事件处理程序,还是有一种简单的方法来包含所有输入类型?
“预览”事件和常规事件之间有什么区别(在MSDN上找不到它)?
答案 0 :(得分:2)
我希望您确实想要Click事件。
请注意,WPF Button有一个ClickMode属性,用于控制何时引发Click事件。
ClickMode属性的默认值是Release Specifies that the Click event should be raised when a button is pressed and released.
像雷切尔所说,预览事件发生在实际事件发生之前。
Click事件无效,因为您在按下和释放按钮时都需要事件。您可以绑定到IsPressed属性。
<Style x:Key="Triggers" TargetType="Button">
<Style.Triggers>
<Trigger Property="IsPressed" Value="true">
<Setter Property = "Foreground" Value="Green"/>
</Trigger>
</Style.Triggers>
</Style>
如果你需要引发事件,你可以在触发器中使用EventSetter而不是Setter。
答案 1 :(得分:0)
您可以为所有事件使用一个事件处理程序,这会有帮助吗?
<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="86,84,0,0" Name="button1" VerticalAlignment="Top" Width="75"
MouseDown="button1_generalInput"
KeyDown="button1_generalInput"
StylusDown="button1_generalInput"
TouchDown="button1_generalInput"/>
private void button1_generalInput(object sender, EventArgs e)
{
}