首页 > 解决方案 > 如何最小化/折叠 Outlook-addin 自定义任务窗格与文件夹窗格相同?

问题描述

我创建了 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

标签: c#vstooutlook-addincustomtaskpane

解决方案


CustomTaskPane接口没有提供任何开箱即用的东西。您可以尝试通过设置自定义任务窗格大小属性来实现所需的功能。根据布局(Dock 位置),您可以使用HeightWidth属性。

宽度

Width如果自定义任务窗格停靠在文档窗口的顶部或底部,请勿使用该属性。如果该DockPosition属性是Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionTopMicrosoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionBottom,则该属性返回 0 并在您尝试设置它时Width抛出 a 。COMException

最大宽度取决于停靠位置。当自定义任务窗格停靠在文档窗口的左侧或右侧时,最大宽度约为屏幕宽度的一半。当自定义任务窗格浮动时,没有最大宽度。

最小宽度取决于几个因素,并且在 Microsoft Office 的未来版本中可能会发生变化。如果您尝试将该Width属性设置为小于最小宽度的值,应用程序将自动将 Width 属性重新分配为最小宽度。

高度

Height如果自定义任务窗格停靠在文档窗口的左侧或右侧,请不要使用该属性。如果该DockPosition属性是Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionRightMicrosoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionLeft,则该属性返回 0 并在您尝试设置它时Height抛出 a 。COMException

最大高度取决于码头位置。当自定义任务窗格停靠在文档窗口的顶部或底部时,最大高度约为屏幕高度的一半。当自定义任务窗格浮动时,没有最大高度。

最小高度取决于几个因素,并且可能会在 Microsoft Office 的未来版本中发生变化。如果您尝试将该Height属性设置为小于最小高度的值,应用程序将自动将 Height 属性重新分配给最小高度。

此外,您可以考虑使用高级 Outlook 视图和表单区域。它们提供开箱即用的所需功能。


推荐阅读