1

我正在创建一个 Office 2010 插件,它的行为应该类似于 Word 2003 中可用的工具栏。当它处于浮动模式时,我应该能够调整自定义任务窗格的大小。在 Word 2003 中,我们可以使用 CommandBar 类来完成此功能,但在 Word 2010 中则不行。

我为 Word 2010 创建了一个插件,其中我有一个自定义任务窗格,其中包含以下层次结构中的控件。

CustomTaskPane UserControl 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;
               }

           }

我可以从左侧和右侧调整自定义任务窗格的大小,但在浮动时不能从顶部或底部调整。当我调整它的大小时它也在闪烁。请帮忙。

4

0 回答 0