【问题标题】:mouse cursor doesn't change on MouseLeave event鼠标光标在 MouseLeave 事件上不会改变
【发布时间】:2018-06-10 21:20:44
【问题描述】:

我有几个附加到标签的事件处理程序:一个是 MouseEnter,另一个是 MouseLeave。 MouseEnter 工作正常,并在鼠标进入标签边界时将鼠标光标更改为 IBeam,但是,鼠标光标不会回到箭头并保持为 IBeam,因为鼠标存在标签边界。我似乎无法弄清楚出了什么问题。

    void lbRefLevel_MouseLeave(object sender, MouseEventArgs e)
    {
        Label lbRefLevel = (Label)sender;
        Mouse.OverrideCursor = Cursors.Arrow;
        Mouse.Capture(lbRefLevel);
    }

    void lbRefLevel_MouseEnter(object sender, MouseEventArgs e)
    {
        Label lbRefLevel = (Label)sender;
        Mouse.OverrideCursor = Cursors.IBeam;
        Mouse.Capture(lbRefLevel);
    } 

【问题讨论】:

  • 实际上,我不需要事件中的标签引用。仅使用 Mouse.OverrideCursor = Cursors.Arrow 和 Mouse.OverrideCursor = Cursors.IBeam 即可正确操作鼠标光标

标签: c# wpf


【解决方案1】:

在您的鼠标离开事件中设置Mouse.OverrideCursor = null;,这将重置您在鼠标进入时所做的覆盖。

再次覆盖不会有帮助。

【讨论】:

  • 使用语句 Mouse.OverrideCursor = Cursors.Arrow 确实有效,尽管我认为您的回答更合适。感谢您的回答。
猜你喜欢
  • 1970-01-01
  • 2012-08-22
  • 2017-12-02
  • 2011-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多