问题背景
VSTO开发中,添加UserControl任务窗格新项时,设置该任务窗格的大小长宽属性(with、height)后,启动word加载该任务窗格后,其大小属性不起作用。如下图所示。
解决思路
- 不在创建的UserControl类中解决,在new创建该UserControl任务窗格对象的类中解决。
- 即通过代码动态调整UserControl任务窗格的大小。
解决方法
- 创建的UserControl任务窗格对象,须放在静态类中。可起到统管作用,类似基于全域变量或Global。
- 需在VSTO文档Global加载UserControl任务窗格对象之后调整宽度。
- 为方便理解,下方属性和变量均采用中文示例。
this.UserControl确保唯一性_XZ协助1 = new UserControls任务窗格集.UserControl任务窗格_XZ协助1();
Static_CustomTaskPane静态任务窗格.MyUserControl任务窗格_XZ协助1 = Globals.ThisAddIn.CustomTaskPanes.Add(UserControl确保唯一性_XZ协助1, "will协助");
Static_CustomTaskPane静态任务窗格.MyUserControl任务窗格_XZ协助1.Visible = true;
Static_CustomTaskPane静态任务窗格.MyUserControl任务窗格_XZ协助1.Width = 382 + 10; //代码调整UserControl任务窗体对象的大小
- 须在new创建目标UserControl任务窗格对象的类中进行调整。
- UserControl任务窗格在实际启动后,其with宽度会出现10的偏差,因此宽度需要【+ 10】。