本文档已存档,并且将不进行维护。

UIElement.MouseLeave 事件

更新:2007 年 11 月

在鼠标指针离开此元素的边界时发生。

命名空间:  System.Windows
程序集:  PresentationCore(在 PresentationCore.dll 中)
用于 XAML 的 XMLNS:http://schemas.microsoft.com/winfx/xaml/presentation

public event MouseEventHandler MouseLeave
/** @event */
public final void add_MouseLeave (MouseEventHandler value)
/** @event */
public final void remove_MouseLeave (MouseEventHandler value)

JScript 不支持事件。
<object MouseLeave="MouseEventHandler" .../>

实现

IInputElement.MouseLeave

标识符字段

MouseLeaveEvent

路由策略

直接

委托

MouseEventHandler

  • 重写 OnMouseLeave 以在派生类中实现此事件的类处理。

MouseLeave 是一个使用直接事件处理路由策略的路由事件。直接路由事件不在路由过程中引发,而是在引发它们的元素中处理。不过,它们启用了其他方面的路由事件行为,如样式中的事件触发器。

虽然 MouseLeave 可以跟踪鼠标指针何时离开元素边界,但此事件能够更确切地报告此元素的 IsMouseOver 属性值已从 true 更改为 false

UIElement 作为基元素继承时,此事件会为该类的 Mouse.MouseLeave 附加事件创建一个别名,以便 MouseLeave 包含在该类的成员列表中。附加到 MouseLeave 事件的事件处理程序将附加到基础 Mouse.MouseLeave 附加事件,并接收同一事件数据实例。

本示例演示如何在鼠标指针进入和离开元素所在的区域时更改元素的颜色。

本示例包括一个可扩展应用程序标记语言 (XAML) 文件和一个代码隐藏文件。有关完整示例,请参见鼠标指针示例

说明:

本示例演示了如何使用事件,但建议在样式中使用 Trigger 来获得相同的效果。有关更多信息,请参见样式设置和模板化

下面的 XAML 创建用户界面(它包括围绕在 TextBlock 周围的 Border),并将 MouseEnterMouseLeave 事件处理程序附加到 Border 上。

<StackPanel>
  <Border MouseEnter="OnMouseEnterHandler"
          MouseLeave="OnMouseLeaveHandler"
          Name="border1" Margin="10"
          BorderThickness="1"
          BorderBrush="Black"
          VerticalAlignment="Center"
          Width="300" Height="100">
    <Label Margin="10" FontSize="14"
           HorizontalAlignment="Center">Move Cursor Over Me</Label>
  </Border>
</StackPanel>


下面的代码隐藏文件创建 MouseEnterMouseLeave 事件处理程序。 当鼠标指针进入 Border 时,Border 的背景变成红色。 当鼠标指针离开 Border 后,Border 的背景又变回白色。

public partial class Window1 : Window
{
    public Window1()
    {
        InitializeComponent();
    }

    // raised when mouse cursor enters the area occupied by the element
    void OnMouseEnterHandler(object sender, MouseEventArgs e)
    {
        border1.Background = Brushes.Red;
    }

    // raised when mouse cursor leaves the area occupied by the element
    void OnMouseLeaveHandler(object sender, MouseEventArgs e)
    {
        border1.Background = Brushes.White;
    }
}


Windows Vista

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求

.NET Framework

受以下版本支持:3.5、3.0
显示: