繁体   English   中英

动态设置Word CustomTaskPane宽度

[英]Setting Word CustomTaskPane Width Dynamically

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

myPane.DockPosition = Office.MsoCTPDockPosition.msoCTPDockPositionRight;

因此,没有理由将其部分悬挂在屏幕的侧面。 此外,即使我将其停靠在左侧,它仍然缺少窗格的右侧。

我不确定为什么我什至需要在代码中设置宽度,我认为它应该采用USerControl设计器中设置的大小,但是如果我不设置代码的大小,则宽度会更小。 我玩过自动调整大小的东西,但是一无所获。 我觉得我缺少明显的东西。 有人可以建议吗?

另一个附带的问题是,Word 2013中的自定义控件标题高度比Word 2010大得多。我看不到有任何地方可以更改此设置。

原因可能是因为AFAIK的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. 在InitializeComponent()方法中的TaskPane.Designer.cs类中动态更改宽度。

但是问题是您不能在InitializeComponent()方法中添加自定义代码,否则即使卸载了外接程序,该对象也无法正确处理。 单词处理的一个额外实例将出现在任务管理器中。

因此,我建议您根据Office 2013中看起来可接受的宽度设置宽度,并希望您无需在Office 2010中拖动任务窗格。

至于第二个问题,我认为这是默认行为。

干杯。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM