c# - 如何最小化/折叠 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
解决方案
CustomTaskPane接口没有提供任何开箱即用的东西。您可以尝试通过设置自定义任务窗格大小属性来实现所需的功能。根据布局(Dock 位置),您可以使用Height 和Width属性。
宽度
Width
如果自定义任务窗格停靠在文档窗口的顶部或底部,请勿使用该属性。如果该DockPosition
属性是Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionTop
或Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionBottom
,则该属性返回 0 并在您尝试设置它时Width
抛出 a 。COMException
最大宽度取决于停靠位置。当自定义任务窗格停靠在文档窗口的左侧或右侧时,最大宽度约为屏幕宽度的一半。当自定义任务窗格浮动时,没有最大宽度。
最小宽度取决于几个因素,并且在 Microsoft Office 的未来版本中可能会发生变化。如果您尝试将该Width
属性设置为小于最小宽度的值,应用程序将自动将 Width 属性重新分配为最小宽度。
高度
Height
如果自定义任务窗格停靠在文档窗口的左侧或右侧,请不要使用该属性。如果该DockPosition
属性是Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionRight
或Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionLeft
,则该属性返回 0 并在您尝试设置它时Height
抛出 a 。COMException
最大高度取决于码头位置。当自定义任务窗格停靠在文档窗口的顶部或底部时,最大高度约为屏幕高度的一半。当自定义任务窗格浮动时,没有最大高度。
最小高度取决于几个因素,并且可能会在 Microsoft Office 的未来版本中发生变化。如果您尝试将该Height
属性设置为小于最小高度的值,应用程序将自动将 Height 属性重新分配给最小高度。
此外,您可以考虑使用高级 Outlook 视图和表单区域。它们提供开箱即用的所需功能。
推荐阅读
- curl - 使用 WGET 或 CURL 或类似方法将 foo 附加到文件名?
- android - 带有“时间”类型的 EditText 在三星设备中不显示冒号
- r - 带有多个触发表达式的 ObserveEvent :知道发生了哪一个
- sql - SQLite 书店:最后的学生和他们订购的所有书籍
- api-platform.com - api platform.com - 不受支持的媒体类型
- javascript - 使用 fetch 从流中读取并创建一个 excel 文件
- python - 为什么在直方图均衡中使用 float 16
- reactjs - React 本地视频不会在生产中加载
- intellij-idea - IDEA - 有没有办法制作组合(合并)动作快捷方式?
- mysql - mySQL中的自动递增字符串