我有一个BrowserWindow的实例。我想知道何时在屏幕上拖动/移动窗口。

我尝试使用moved事件,但是该事件仅在移动窗口后才触发。拖动窗口时不会触发。

如何跟踪何时拖动窗口?

最佳答案

我遇到了同样的问题,并以另一种方式解决了它。
我创建了一个无框架的BrowserWindow,并使用要在该窗口中加载的网页中所需的图标和所需的监听器制作了“系统栏”。

这可以正常工作,而且并不昂贵。

    let wX;
    let wY;
    let dragging = false;
    $('#systembar').mousedown(function (e) {
        ipcRenderer.send('asynchronous-message', 'down')
        dragging = true;
        wX = e.pageX;
        wY = e.pageY;
    });

    $(window).mousemove(function (e) {
        e.stopPropagation();
        e.preventDefault();
        if (dragging) {
            var xLoc = e.screenX - wX;
            var yLoc = e.screenY - wY;

            try {
                remote.BrowserWindow.getFocusedWindow().setPosition(xLoc, yLoc);
            } catch (err) {
                console.log(err);
            }
        }
    });

    $('#systembar').mouseup(function () {
        dragging = false;
        ipcRenderer.send('asynchronous-message', 'up')
    });

09-25 17:59