【问题标题】:wpf: capturing mouse does not workwpf:捕获鼠标不起作用
【发布时间】:2010-01-04 17:48:14
【问题描述】:

我正在开发一种 Outlook 日历应用程序,我需要通过鼠标调整约会的大小。 我第一次用拇指尝试没有正常工作,所以我尝试了另一种方法。

我所做的是:

1) 在约会面板的底部,我添加了一个矩形来确定调整大小区域(拇指)。约会面板放在网格面板上。 2)我拦截矩形上的向下事件并将事件发送到此代码:

private Point startPoint;
private void OnResizeElementMouseDown(object sender, MouseButtonEventArgs e)
{
    e.Handled = true;
    this.MouseMove += new MouseEventHandler(ResizeEndElement_MouseMove);
    this.MouseLeftButtonUp += new MouseButtonEventHandler(OnResizeElementMouseUp);
    // some code to perform new height computation
    Mouse.Capture(this);
}

这是拥有拇指的约会面板。

降低高度效果很好。 但增加难度更大。如果我移动鼠标的速度非常非常慢也没关系,如果我稍微加快速度,它往往会遗漏约会面板,然后所有 MouseMove 事件都会丢失。

我以为 Mouse.Capture() 是为了解决这类问题而提出的,但实际上并非如此。

有人知道我的代码有什么问题吗?

【问题讨论】:

    标签: wpf mouse capture


    【解决方案1】:

    您应该使用实际的Thumb 控件。查看 MSDN 寻求帮助:

    How to: Use a Thumb to Enable Dragging

    【讨论】:

      【解决方案2】:

      您应该使用拇指,但要玩鼠标捕获,请覆盖 protected override void OnLostMouseCapture(MouseEventArgs e) 方法,然后您将知道是否丢失了捕获。

      【讨论】:

        猜你喜欢
        • 2018-05-30
        • 2014-04-05
        • 1970-01-01
        • 1970-01-01
        • 2016-09-22
        • 2010-12-26
        • 1970-01-01
        • 2018-04-09
        • 1970-01-01
        相关资源
        最近更新 更多