前言:子窗口的控制按鈕被dockpanel控制,MaximizeBox屬性不管用,
修改dockpanel控件源代碼,找到項(xiàng)目中的文件FloatWindow.cs
在240行左右有這樣的代碼,中間標(biāo)“*”的部分是修改的部分,這樣修改后,在浮動(dòng)窗口的情況雙擊標(biāo)題欄是最大化/最小化,而不是縮回去
else if (m.Msg == (int)Win32.Msgs.WM_NCLBUTTONDBLCLK) //雙擊消息事件
{
uint result = NativeMethods.SendMessage(this.Handle, (int)Win32.Msgs.WM_NCHITTEST, 0, (uint)m.LParam);
if (result != 2) // HITTEST_CAPTION
{
base.WndProc(ref m);
return;
}
DockPanel.SuspendLayout(true);
// Restore to panel
foreach (DockPane pane in NestedPanes)
{
if (pane.DockState != DockState.Float)
{
continue;
}
/*******************************雙擊最大化(開始)*******************************/
//pane.RestoreToPanel();
Form form = (Form)System.Windows.Forms.Form.FromHandle(this.Handle);
if (form.WindowState != FormWindowState.Maximized)
form.WindowState = FormWindowState.Maximized;
else
form.WindowState = FormWindowState.Normal;
/*******************************雙擊最大化(結(jié)束)*******************************/
}
DockPanel.ResumeLayout(true, true);
return;
}