【问题标题】:MS Word AddIn Catch Document Zoom changeMS Word AddIn Catch 文档缩放更改
【发布时间】:2020-03-21 22:56:18
【问题描述】:

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

当用户在 Word 活动文档中更改缩放级别(缩小/缩小)时,有什么方法可以触发或检测事件。

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

谢谢。

【问题讨论】:

    标签: c# ms-word vsto word-addins word-interop


    【解决方案1】:

    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();
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-21
      • 2019-04-19
      • 2010-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多