c# - MS Word AddIn Catch 文档缩放更改
问题描述
我正在开发 word VSTO 插件,并且当用户通过更改 word 文档右下角的滑块或使用键盘和鼠标更改缩放级别时,我试图检测事件。但我没有成功。
当用户在 word 活动文档中更改缩放级别(缩小/缩小)时,是否有任何方法可以触发或检测事件。
如果有人对此有任何想法或任何替代方案,请提出建议。
谢谢。
解决方案
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();
}
推荐阅读
- arrays - 如何在 VBA 的公式中使用数组变量而不是范围
- r - 将项目分组并从每个组中找到前 n%
- javascript - 关闭网络应用程序选项卡适用于脚本编辑器,但不适用于谷歌工作表:(
- javascript - sidenav 多个下拉列表的 iframe 更改
- machine-learning - 我可以添加错误监控(实际温度与预测温度)吗?
- visual-studio-code - 如何在 Visual Studio Code SERVER 上运行/编译 Pascal?(Ubuntu上的FPC?)
- c# - ORA-00936: 将数据集填充到 OracleDataAdapter 时缺少表达式
- python-3.x - 对 Pandas 数据帧描述输出进行排序
- c# - Transform.LookAt() 但仅限于 X 轴
- c++ - Dymola/Modelica & Matlab/Simulink 导出到 Qt 导出 - 我可以使用不同的编译器吗?