/// <summary> /// Fit the window to specified monitor /// </summary> /// <param name="monitorIndex"></param> /// <returns></returns> public bool FitToMonitor(int monitorIndex) { float dx, dy, dw, dh; if (LibUniWinC.GetMonitorRectangle(monitorIndex, out dx, out dy, out dw, out dh)) { // 最大化状態なら一度戻す if (LibUniWinC.IsMaximized()) { LibUniWinC.SetMaximized(false); } // 指定モニタ中央座標 float cx = dx + (dw / 2); float cy = dy + (dh / 2); // ウィンドウ中央を指定モニタ中央に移動 float ww, wh; LibUniWinC.GetSize(out ww, out wh); float wx = cx - (ww / 2); float wy = cy - (wh / 2); LibUniWinC.SetPosition(wx, wy); // 最大化 LibUniWinC.SetMaximized(true); //Debug.Log(String.Format("Monitor {4} : {0},{1} - {2},{3}", dx, dy, dw, dh, monitorIndex)); return(true); } return(false); }
/// <summary> /// ウィンドウを最大化(Macではズーム)する /// 最大化された後にサイズ変更がされることもあり、現状、確実には動作しない可能性があります /// </summary> public void SetZoomed(bool isZoomed) { LibUniWinC.SetMaximized(isZoomed); }