我已经创建了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发布于 2019-07-10 16:30:47
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。它们提供了开箱即用的所需功能。
https://stackoverflow.com/questions/56966009
复制相似问题