ButtonBase.Click 事件

定义

在单击 Button 时发生。

public:
 event System::Windows::RoutedEventHandler ^ Click;
public event System.Windows.RoutedEventHandler Click;
member this.Click : System.Windows.RoutedEventHandler 
Public Custom Event Click As RoutedEventHandler 

事件类型

示例

以下示例显示了三个按钮,这些按钮以三种不同的方式响应单击。

  • 悬停 - 当用户将鼠标悬停在按钮上时,第一个按钮将更改颜色

  • 按 - 第二个按钮要求在鼠标指针位于按钮中时按下鼠标。

  • 释放 - 在按钮中按下并释放鼠标之前,第三个不会重置按钮的背景色。

<Button Name="btn1" Background="Pink" 
        BorderBrush="Black" BorderThickness="1" 
        Click="OnClick1" ClickMode="Hover">
  ClickMe1
</Button>

<Button Name="btn2" Background="LightBlue" 
        BorderBrush="Black" BorderThickness="1" 
        Click="OnClick2" ClickMode="Press">
  ClickMe2
</Button>

<Button Name="btn3" 
        Click="OnClick3" ClickMode="Release">
  Reset
</Button>
void OnClick1(object sender, RoutedEventArgs e)
{
    btn1.Background = Brushes.LightBlue;
}

void OnClick2(object sender, RoutedEventArgs e)
{
    btn2.Background = Brushes.Pink;
}

void OnClick3(object sender, RoutedEventArgs e)
{
    btn1.Background = Brushes.Pink;
    btn2.Background = Brushes.LightBlue;
}
Private Sub OnClick1(ByVal sender As Object, ByVal e As RoutedEventArgs)
    btn1.Background = Brushes.LightBlue
End Sub

Private Sub OnClick2(ByVal sender As Object, ByVal e As RoutedEventArgs)
    btn2.Background = Brushes.Pink
End Sub

Private Sub OnClick3(ByVal sender As Object, ByVal e As RoutedEventArgs)
    btn1.Background = Brushes.Pink
    btn2.Background = Brushes.LightBlue
End Sub

注解

当控件具有焦点时,AccessText用户可以使用 或 按 Enter 或空格键来引发Click事件。 当用户按空格键时,控件会将 设置为 IsPressedtrue 并捕获鼠标。 因此,控件将引发鼠标事件,例如 MouseEnterIsMouseDirectlyOverChanged。 请注意, AccessText 使用 或 ENTER 不会更改 IsPressed 或捕获鼠标,但会引发 Click 事件。

ButtonBaseMouseLeftButtonDown 事件标记为在 方法中 OnMouseLeftButtonDown 处理,并引发 Click 事件。 因此, OnMouseLeftButtonDown 对于继承自 ButtonBase的控件,事件永远不会发生。 相反,请将事件处理程序附加到 PreviewMouseLeftButtonDown 事件,或使用 设置为 true调用 AddHandler(RoutedEvent, Delegate, Boolean)handledEventsToo

路由事件信息

标识符字段 ClickEvent
路由策略 鼓 泡
委托 RoutedEventHandler

适用于