/// <summary> /// 设置选中指定Viewer /// </summary> /// <param name="aViewer"></param> private void SelectViewer(CarEyeViewer aViewer) { if (mSelectedViewer != null) { mSelectedViewer.BackColor = Color.Firebrick; } mSelectedViewer = aViewer; mSelectedViewer.BackColor = Color.LimeGreen; }
/// <summary> /// 设置全屏模式 /// </summary> private void SetFullScreen() { if (mSelectedViewer == null) { if (mViewers == null || mViewers.Count < 1) { return; } mSelectedViewer = mViewers[0]; } HideAllViewer(); mSelectedViewer.Location = new Point(0, 0); mSelectedViewer.Size = this.ClientSize; mSelectedViewer.Visible = true; mSplitCount = 1; }
/// <summary> /// 符合4、9、16矩阵的分屏布局 /// </summary> private void SetMatrixScreen(byte aCount) { HideAllViewer(); // 每行每列的视频输出窗口个数 int tmpCount = (int)Math.Sqrt(aCount); int perWidth = this.ClientSize.Width / tmpCount; int perHeight = this.ClientSize.Height / tmpCount; Size perSize = new Size(perWidth, perHeight); for (int i = 0; i < tmpCount; i++) { for (int j = 0; j < tmpCount; j++) { CarEyeViewer tmpViewer = mViewers[i * tmpCount + j]; tmpViewer.Location = new Point(j * perWidth, i * perHeight); tmpViewer.Size = perSize; tmpViewer.Visible = true; if (j == tmpCount - 1) { // 最后一列对齐控件右边 tmpViewer.Width += this.ClientRectangle.Right - tmpViewer.Right; } if (i == tmpCount - 1) { tmpViewer.Height += this.ClientRectangle.Bottom - tmpViewer.Bottom; } } } mSplitCount = aCount; if (mSelectedViewer == null) { return; } }