MS Word 加载项捕捉文档缩放更改

MS Word AddIn Catch Document Zoom change

我正在开发 word VSTO 插件,我正在尝试检测用户通过更改 word 文档右下角的滑块或使用键盘和鼠标更改缩放级别时的事件。但是我没有成功。

当用户在 word 活动文档中更改缩放级别(缩放 out/in)时,是否有任何方法可以触发或检测事件。

如果有人对此有想法或任何替代方案,请提出建议。

谢谢。

Word 对象模型中没有用于缩放更改的内置事件。 您可以使用以下方法设置计时器并查找 Zoom 属性:

中的变化
    // Add these 2 class members.
    System.Timers.Timer _zoomTimer = new System.Timers.Timer();
    public double _lastZoomValue = 100; // default zoom


    // in the Startup function of the addin, set the timer.
    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        _zoomTimer.Elapsed += OnZoomChanged;
        _zoomTimer.Interval = 1000;
        _zoomTimer.Start();
    }

    // dispose the timer
    private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
    {
        _zoomTimer.Dispose();
    }

    // check if there is active window.
    private void OnZoomChanged(object source, ElapsedEventArgs e)
    {
        _zoomTimer.Stop();

        var app = this.Application;
        if (app!=null && app.ActiveWindow != null && app.ActiveWindow.Zoom != _lastZoomValue)
        {
            _lastZoomValue = app.Application.ActiveWindow.Zoom;
            // DO SOMETHING
        }

        _zoomTimer.Start();
    }