我创建了VSTO Outlook加载项项目。添加了用户控件和其他控件。我可以通过单击功能区上的按钮来显示/隐藏自定义任务窗格。我希望最小化和扩展它,就像在右侧“文件夹窗格”中内置的Outlook一样。我无法像“文件夹窗格”那样将其最小化或折叠。
我已经添加了更改任务窗格宽度的代码,但是有两个按钮“任务窗格选项”和“关闭X”使它看起来与最小化的文件夹窗格相同。
public CustomTaskPane custTaskPane;
public bool isTaskPaneCollapse = false;
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
TaskPane tpControl = new TaskPane();
tpControl.BackColor = Color.White;
custTaskPane = this.CustomTaskPanes.Add(tpControl, " ");
custTaskPane.Visible = true;
custTaskPane.Width = 370;
custTaskPane.DockPosition = Office.MsoCTPDockPosition.msoCTPDockPositionRight;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Globals.ThisAddIn.isTaskPaneCollapse = true;
Globals.ThisAddIn.custTaskPane.Width = 20;
}```
What is the right way of doing it? how to implement minimize and expand functionality for custom task pane
答案 0 :(得分:0)
CustomTaskPane界面不提供任何可用的功能。您可以尝试通过设置自定义任务窗格大小属性来实现所需的功能。根据布局(码头位置),您可以使用Height 和Width属性。
如果自定义任务窗格停靠在文档窗口的顶部或底部,请不要使用Width
属性。如果DockPosition
属性是Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionTop
或Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionBottom
,则Width
属性将返回0,并在尝试设置时抛出COMException
。
最大宽度取决于扩展坞位置。当自定义任务窗格停靠在文档窗口的左侧或右侧时,最大宽度大约是屏幕宽度的一半。当自定义任务窗格浮动时,没有最大宽度。
最小宽度取决于几个因素,并且在将来的Microsoft Office版本中可能会更改。如果您尝试将Width
属性设置为小于最小宽度的值,则应用程序将自动将Width属性重新分配为最小宽度。
如果自定义任务窗格停靠在文档窗口的左侧或右侧,请不要使用Height
属性。如果DockPosition
属性是Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionRight
或Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionLeft
,则Height
属性将返回0,并在尝试设置时抛出COMException
。
最大高度取决于扩展坞位置。当自定义任务窗格停靠在文档窗口的顶部或底部时,最大高度大约是屏幕高度的一半。当自定义任务窗格浮动时,没有最大高度。
最小高度取决于多个因素,并且在将来的Microsoft Office版本中可能会更改。如果您尝试将Height
属性设置为小于最小高度的值,则应用程序将自动将Height属性重新分配为最小高度。
此外,您可以考虑使用Advanced Outlook view and form regions。它们提供了开箱即用的必需功能。