123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- using AForge.Video.DirectShow;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Data;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Imaging;
- using System.Windows.Shapes;
-
- namespace XHZB.Desktop
- {
- /// <summary>
- /// CameraWindow.xaml 的交互逻辑
- /// </summary>
- public partial class CameraWindow : Window
- {
- public CameraWindow()
- {
- InitializeComponent();
- FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
- if(videoDevices.Count>0)
- {
- var videoDevice = new VideoCaptureDevice(videoDevices[0].MonikerString);
- videoDevice.VideoResolution = videoDevice.VideoCapabilities[0];
- player.VideoSource = videoDevice;
- player.Start();
- }
- }
-
- #region 窗体移动
- /// <summary>
- /// 记录初始点
- /// </summary>
- Point mPoint = new Point(0,0);
- bool IsStretching = false;
- int Position = 0;
- private void player_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
- {
- mPoint = new Point(e.X, e.Y);
- }
-
- private void player_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
- {
- if (e.Button == System.Windows.Forms.MouseButtons.Left)
- {
- if (IsStretching)
- {
- switch (Position)
- {
- case 1:
- this.Left = this.Left - (mPoint.X - e.X);
- this.Top = this.Top - (mPoint.Y - e.Y);
- this.Width = this.Width + (mPoint.X - e.X);
- this.Height = this.Height + (mPoint.Y - e.Y);
- break;
- case 2:
- this.Left = this.Left - (mPoint.X - e.X);
- this.Width = this.Width + (mPoint.X - e.X);
- this.Height = this.Height - (mPoint.Y - e.Y);
- mPoint = new Point(mPoint.X, e.Y);
- break;
- case 3:
- this.Top = this.Top - (mPoint.Y - e.Y);
- this.Width = this.Width - (mPoint.X - e.X);
- this.Height = this.Height + (mPoint.Y - e.Y);
- mPoint = new Point(e.X, mPoint.Y);
- break;
- case 4:
- this.Width = this.Width - (mPoint.X - e.X);
- this.Height = this.Height - (mPoint.Y - e.Y);
- mPoint = new Point(e.X, e.Y);
- break;
- default:
- break;
- }
- }
- else
- {
- this.Left = this.Left - (mPoint.X - e.X);
- this.Top = this.Top - (mPoint.Y - e.Y);
- }
- }
- if (e.Button == System.Windows.Forms.MouseButtons.None)
- {
- if (e.X <= 5 && e.Y <= 5)//左上
- {
- IsStretching = true;
- Position = 1;
- wfhCamera.Cursor = Cursors.SizeNWSE;
- }
- else if (e.X <= 5 && e.Y >= wfhCamera.ActualHeight - 5)//左下
- {
- IsStretching = true;
- Position = 2;
- wfhCamera.Cursor = Cursors.SizeNESW;
- }
- else if (e.X >= wfhCamera.ActualWidth - 5 && e.Y <= 5)//右上
- {
- IsStretching = true;
- Position = 3;
- wfhCamera.Cursor = Cursors.SizeNESW;
- }
- else if (e.X >= wfhCamera.ActualWidth - 5 && e.Y >= wfhCamera.ActualHeight - 5)//右下
- {
- IsStretching = true;
- Position = 4;
- wfhCamera.Cursor = Cursors.SizeNWSE;
- }
- else
- {
- IsStretching = false;
- wfhCamera.Cursor = Cursors.SizeAll;
- }
-
- }
-
- }
- #endregion
-
- }
- }
|