在VSTO开发中CustomTaskPane初始化在Word和WPS中设置高度或宽度效果是不一样的。
在WPS中需要先将对象显示出来,设置的高度才有效。否则在显示之前设置的高度都无效,那么显示后的高度是0;
在Word中先设置对象,再将对象显示出来,那么可以获得顺滑的视觉效果。如果在显示之前不设置,显示之后再修改高度,那么会产生从0高到指定高度的一个动画效果,看起来比较突兀。
因此建议在显示之前和之后,都设置下高度。
Microsoft.Office.Tools.CustomTaskPane customTaskPane;
customTaskPane = Globals.ThisAddIn.CustomTaskPanes.Add(UserControlResult, "Title");
customTaskPane.DockPosition = Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionBottom;
customTaskPane.Height = 300;//对Word有效,对WPS无效
customTaskPane.Visible = true;
customTaskPane.Height = 300;//对WPS必须有此设置,Word可以不用此设置,但多设置一次无妨。
也可以先判断是WPS还是Word。再执行代码,不过没太有必要。
也可以只再显示之后设置高度,这样对于Word只是多了一次动作,但可以正常执行。