动态设置Word自定义任务面板宽度

本文关键字:任务 设置 Word 自定义 动态 | 更新日期: 2023-09-27 18:10:44

我有一个VSTO自定义任务窗格。在我的代码中,我将宽度设置为306,它在Word 2010中正确显示。然而,在Word 2013中,除非我手动拖动使其变宽,否则窗格右侧的某些部分是不可见的。注意,这是同一台PC,所以分辨率不应该是一个因素。我觉得如果我只是在代码中增加宽度,我并没有真正解决真正的问题,所以我想要一种动态设置宽度的方法。注意控件被停靠在右侧

myPane。

DockPosition = office . msoctpdockposition . msoctpdockposition;

所以没有理由它的一部分应该挂在屏幕的一边。此外,即使我将它停靠在左侧,它仍然缺少窗格的右侧。

我不知道为什么我甚至需要在代码中设置宽度,我认为它应该在USerControl设计器中设置大小,但是如果我不在代码中设置大小,宽度甚至更小。我尝试过自动缩放的东西,但是一无所获。我觉得我错过了一些明显的东西。有人能给点建议吗?

还有一个附带问题,Word 2013中的自定义控件标题高度比Word 2010大得多。我看不出有什么地方可以改变。

动态设置Word自定义任务面板宽度

原因可能是因为Office 2013的默认屏幕分辨率是16:9,而Office 2010的默认分辨率是4:3。

我遇到过类似的情况(虽然是PowerPoint),默认分辨率根据Office 2010或2013而变化。

所以基本上如果你硬编码2010年任务窗格的大小,我猜你会面对你现在面临的(我也面临过!)。

您可能会考虑动态设置宽度,但为此您需要做两件事

  1. 检查Office版本。这可以很容易地完成如下操作:

    Microsoft.Office.Interop.Word.Application appVersion = new Microsoft.Office.Interop.Word.Application();
    
  2. 在TaskPane.Designer.cs类的InitializeComponent()方法中动态改变宽度

但是问题是你不能在InitializeComponent()方法中添加你的自定义代码,否则即使在卸载你的插件之后,这个对象也不会被正确地处理。任务管理器中会出现一个额外的Word进程实例。

所以,我建议你将宽度设置为在Office 2013中看起来可以接受的宽度,我希望你不需要在Office 2010中拖动任务窗格。

关于你的第二个问题,我认为这是默认的行为。

欢呼。