在C#里怎样改变标题栏大小?请不要自己用一个无边框的窗口来画出来,这样会很占资源!C++可以实现,C#也一定可以实现,请高手指点,谢谢!C++的实现方法如下(转自http://topic.csdn.net/t/20050615/11/4083516.html):
方法一:   
    
  NONCLIENTMETRICS   ncm;   
  ncm.cbSize   =   sizeof(   NONCLIENTMETRICS   );   
    
  ::SystemParametersInfo(   SPI_GETNONCLIENTMETRICS,   
  sizeof(   NONCLIENTMETRICS   ),   
  &ncm,   
  0   
  );   
    
  ncm.lfCaptionFont.lfHeight   =   -300;   
  ::SystemParametersInfo(   SPI_SETNONCLIENTMETRICS,   
  sizeof(   NONCLIENTMETRICS   ),   
  &ncm,   
  SPIF_SENDCHANGE   
  );   
      
    
  方法二:   
    
  case   WM_NCCALCSIZE:     
  {   
  BOOL   bSpecial=FALSE;   
  int   nEdgeWidth   =3;   
  int   nBarHeight   =CAPTIONHEIGHT+3;   
  int   nBottomEdge   =3;   
    
  if(!(BOOL)wParam)   
  {   
  RECT   rtSave;   
  CopyRect(&rtSave,(LPRECT)lParam);   
  //   ::CallWindowProcA(lpwndinfo->pWndProc,hWnd,uMsg,wParam,lParam);   
    
    
  if(lpwndinfo->bIM   ==TRUE)   
  {   
  int   imbarheight   =17;   
  rtSave.left+=nEdgeWidth;   
  rtSave.top+=imbarheight+3;   
  rtSave.right-=nEdgeWidth;   
  rtSave.bottom-=nBottomEdge;   
  }   
  else   
  {   
  rtSave.left+=nEdgeWidth;   
  rtSave.top+=nBarHeight;   
  rtSave.right-=nEdgeWidth;   
  rtSave.bottom-=nBottomEdge;   
  }   
  CopyRect((LPRECT)lParam,&rtSave);   
    
  *lResult=0;   
  ::ReleaseDC(hWnd,hDC);   
  return   TRUE;   
  }   
  else   
  {   
  RECT   rtSave;   
  LPRECT   prtClt;   
  LPNCCALCSIZE_PARAMS   pNC;   
  pNC=(LPNCCALCSIZE_PARAMS)lParam;   
    
  prtClt=&(pNC->rgrc[0]);   
  CopyRect(&rtSave,prtClt);   
  CopyRect(   &(pNC->rgrc[2]),   &(pNC->rgrc[1]));   
    
  if(bSysDlg)   
  {   
  (pNC->rgrc[2]).left   +=nEdgeWidth;   
  (pNC->rgrc[2]).right   -=nEdgeWidth;   
  }   
  else   
  {   
  if(lpwndinfo->bIM   ==TRUE)   
  {   
  int   imbarheight   =17;   
  (pNC->rgrc[2]).left   +=nEdgeWidth;   
  (pNC->rgrc[2]).top   +=imbarheight+3;   
  (pNC->rgrc[2]).right   -=nEdgeWidth;   
  (pNC->rgrc[2]).bottom   -=nBottomEdge;     
    
  rtSave.left+=nEdgeWidth;   
  rtSave.top+=imbarheight+3;   
  rtSave.right-=nEdgeWidth;   
  rtSave.bottom-=nBottomEdge;   
  }   
  else   
  {   
  (pNC->rgrc[2]).left+=nEdgeWidth;   
  (pNC->rgrc[2]).top+=nBarHeight;   
  (pNC->rgrc[2]).right-=nEdgeWidth;   
  (pNC->rgrc[2]).bottom-=nBottomEdge;   
  //   Result=::CallWindowProcA(lpwndinfo->pWndProc,hWnd,uMsg,wParam,lParam);   
  //prtClt=&(pNC->rgrc[0]);   
  rtSave.left+=nEdgeWidth;   
  rtSave.top+=nBarHeight;   
  rtSave.right-=nEdgeWidth;   
  rtSave.bottom-=nBottomEdge;   
  }   
  }   
  CopyRect(prtClt,&rtSave);   
  *lResult=0;   
  ::ReleaseDC(hWnd,hDC);   
  return   TRUE;   
  }   
  break;   
  }