dockpanelsuite的一些修改

一個可以做出類似VS的免費控件,下載網址:http://sourceforge.net/projects/dockpanelsuite/

方便應用,做了一些修改:

1.修改雙擊關閉(在DockPaneStripBase的WndProc方法裏)

else if (m.Msg == (int)Win32.Msgs.WM_LBUTTONDBLCLK)
{
    base.WndProc(ref m);
   int index = GetHitTest();

if (DockPane.DockPanel.AllowRedocking && index != -1)
{
   IDockContent content = Tabs[index].Content;
   try {  
       // 
      //  content.DockHandler.IsFloat = !content.DockHandler.IsFloat;   
     //           
         content.DockHandler.Close();
       }   
  catch  {   }
}
return;
}
 
2.解決背景圖片的問題(DockPanel的OnPaint方法裏) 
protected override void OnPaint(PaintEventArgs e)
{

   base.OnPaint(e);
   //註釋以下這兩句
  //Graphics g = e.Graphics;
  //  g.FillRectangle(SystemBrushes.AppWorkspace, ClientRectangle);
}
3.解決背景色無法改變問題(VS2005DockPaneStrip的OnPaint方法裏)
protected override void OnPaint(PaintEventArgs e)
{
    if (Appearance == DockPane.AppearanceStyle.Document)
    {
    //註釋以下這兩句
    //if (BackColor != SystemColors.Control)
    //    BackColor = SystemColors.Control;
    }
    else
    {
    if (BackColor != SystemColors.ControlLight)
        BackColor = SystemColors.ControlLight;
    }
    base.OnPaint (e);
    CalculateTabs();
    if (Appearance == DockPane.AppearanceStyle.Document 
         && DockPane.ActiveContent != null)
    {
        if (EnsureDocumentTabVisible(DockPane.ActiveContent, false))
            CalculateTabs();
    }

    DrawTabStrip(e.Graphics);
}

4.改變標籤顏色(VS2005DockPaneStrip)

private static Brush BrushDocumentActiveBackground { get { return new LinearGradientBrush(new Rectangle(0, 0, 1, 1),

Color.FromArgb(232, 242, 254),

Color.FromArgb(232, 242, 254), 1);/*SystemBrushes.ControlLightLight;*/ } } private static Brush BrushDocumentInactiveBackground { get { return new LinearGradientBrush(new Rectangle(0, 0, 1, 1),

Color.FromArgb(173, 193, 220),

Color.FromArgb(173, 193, 220), 1); } //SystemBrushes.ControlLight; } }

發佈了34 篇原創文章 · 獲贊 3 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章