我正在创建一个Office 2010 Add In,它应该像Word 2003中提供的工具栏一样。 我应该能够在浮动模式下调整自定义任务窗格的大小。 在Word 2003中,我们可以使用CommandBar类来完成此功能,但不能在Word 2010中使用。
我为Word 2010创建了一个添加项,其中我有一个自定义任务窗格,其中包含以下层次结构中的控件。
CustomTaskPane 用户控件 FlowLayoutPanel的 ToolStrip的 ToolStripButton
我写了一个Flow Layout Panel的Paint Event。 flow.Paint + = new PaintEventHandler(flow_Resize);
public void flow_Resize(object sender, PaintEventArgs e)
{
FlowLayoutPanel flow = sender as FlowLayoutPanel;
var item = listCtpMgr.FirstOrDefault(o => o.flp.Name == flow.Name);
if (item == null)
return;
addedCTP = (Microsoft.Office.Tools.CustomTaskPane)item.ctp;
if (addedCTP == null)
return;
ToolStrip _toolstrip = (ToolStrip)flow.Controls[0];
int MaxButtonWidthforThisToolbar = 0;
foreach (ToolStripItem toolStripItem in _toolstrip.Items)
{
if ((toolStripItem.Width) > MaxButtonWidthforThisToolbar)
{
MaxButtonWidthforThisToolbar = (toolStripItem.Width);
}
}
MaxButtonWidthforThisToolbar += 10;
if (addedCTP.DockPosition == MsoCTPDockPosition.msoCTPDockPositionLeft || addedCTP.DockPosition ==
MsoCTPDockPosition.msoCTPDockPositionRight)
{
if (addedCTP.Width < MaxButtonWidthforThisToolbar)
addedCTP.Width = MaxButtonWidthforThisToolbar;
}
else if (addedCTP.DockPosition == MsoCTPDockPosition.msoCTPDockPositionTop || addedCTP.DockPosition ==
MsoCTPDockPosition.msoCTPDockPositionBottom)
{
addedCTP.Height = 50;
}
else
{
addedCTP.Width = _toolstrip.Width + 27;
addedCTP.Height = _toolstrip.Height + 57;
}
}
我能够从左侧和右侧调整自定义任务窗格,但在浮动时不能从顶部或底部调整。当我调整它时,它也会闪烁。请帮助。