首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态设置字CustomTaskPane宽度

动态设置字CustomTaskPane宽度
EN

Stack Overflow用户
提问于 2014-06-27 16:09:43
回答 1查看 1.3K关注 0票数 2

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

Office.MsoCTPDockPosition.msoCTPDockPositionRight;= myPane.DockPosition

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

我不知道为什么我需要在代码中设置一个宽度,我认为它应该获得USerControl设计器中设置的大小,但是如果我不在代码中设置大小,宽度就会更小。我玩过自动大小的东西,但一无所获。我觉得我错过了一些显而易见的东西。有人能告诉我吗?

另外,在Word 2013中,定制控件标题的高度要比Word 2010大得多。我看不出有什么地方可以改变这一切。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-11 12:04:13

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

我也遇到过类似的情况(虽然对于PowerPoint),在默认的解决方案中,取决于它是Office 2010还是2013年。

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

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

  1. 检查Office version.This可以很容易地完成以下操作: Microsoft.Office.Interop.Word.Application appVersion =新Microsoft.Office.Interop.Word.Application();
  2. 在TaskPane.Designer.cs类中动态更改InitializeComponent()方法中的宽度。

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

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

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

干杯。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24456318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档