protected override void OnExit() { SecondScreen secondScreen = (SecondScreen)window.Content; secondScreen.labelOne.Content = "Hi"; secondScreen.buttonThree.Click -= stateChangeNextEventHandler; secondScreen.textboxOne.TextChanged -= TextboxOne_TextChanged; }
protected override void OnEnter() { SecondScreen secondScreen = (SecondScreen)window.Content; secondScreen.labelOne.Content = "Thank you"; secondScreen.buttonThree.IsEnabled = true; secondScreen.buttonThree.Click += stateChangeNextEventHandler; // в задании этого явно не было указано, но я решил сделать переход в предыдущее состояние, если текст в поле изменился с "hello" на какой-либо другой: secondScreen.textboxOne.TextChanged += TextboxOne_TextChanged; }
protected override void OnExit() { SecondScreen secondScreen = (SecondScreen)window.Content; secondScreen.textboxOne.TextChanged -= stateChangeEventHandler; }
/// <summary> /// 视频截取图片操作 /// </summary> public static string SaveVideoImage(SecondScreen sc2) { Player PP = new Player(); double PlayW = UserControlClass.sc2.FInkCanvas_Player.ActualWidth; double PlayH = UserControlClass.sc2.FInkCanvas_Player.ActualHeight; string PlayPath = ""; string PlayFormat = ""; FileInfo finfo = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + @"\XML\" + "Screen.xml"); if (finfo.Exists) { //读取XML文档信息 XmlDocument PlayXml = new XmlDocument(); PlayXml.Load(AppDomain.CurrentDomain.BaseDirectory + @"\XML\" + "Screen.xml"); XmlNode PlayNode = PlayXml.SelectSingleNode("Screen"); XmlElement PlayElement = (XmlElement)PlayNode; //获取保存图片位置 PlayPath = PlayElement["Location"].InnerText + "\\"; //获取保存图片格式 PlayFormat = PlayElement["Format"].InnerText; } if (string.IsNullOrEmpty(PlayPath)) { PlayPath = "C:\\"; } if (string.IsNullOrEmpty(PlayFormat)) { PlayFormat = ".bmp"; } //GUID(全局统一标识符) string reValue = string.Format("{0}{1}" + PlayFormat + "", PlayPath, Guid.NewGuid().ToString()); RenderTargetBitmap RenderBit = new RenderTargetBitmap(Convert.ToInt32(PlayW), Convert.ToInt32(PlayH), 1 / 200, 1 / 200, PixelFormats.Pbgra32); DrawingVisual PlayVisual = new DrawingVisual(); DrawingContext PlayContext = PlayVisual.RenderOpen(); PlayContext.DrawVideo(UserControlClass.MPPlayer, new Rect(0, 0, PlayW, PlayH)); PlayContext.Close(); RenderBit.Render(PlayVisual); if (PlayFormat == ".bmp") { BmpBitmapEncoder bmpEncoder = new BmpBitmapEncoder(); bmpEncoder.Frames.Add(BitmapFrame.Create(RenderBit)); FileStream fileStream = new FileStream(reValue, FileMode.Create, FileAccess.ReadWrite); bmpEncoder.Save(fileStream); fileStream.Close(); System.Windows.Forms.MessageBox.Show("保存位置:" + reValue); return(reValue); } else if (PlayFormat == ".jpg") { JpegBitmapEncoder jpgEncoder = new JpegBitmapEncoder(); jpgEncoder.Frames.Add(BitmapFrame.Create(RenderBit)); FileStream fileStream = new FileStream(reValue, FileMode.Create, FileAccess.ReadWrite); jpgEncoder.Save(fileStream); fileStream.Close(); System.Windows.Forms.MessageBox.Show("保存位置:" + reValue); return(reValue); } else { PngBitmapEncoder pngEncoder = new PngBitmapEncoder(); pngEncoder.Frames.Add(BitmapFrame.Create(RenderBit)); FileStream fileStream = new FileStream(reValue, FileMode.Create, FileAccess.ReadWrite); pngEncoder.Save(fileStream); fileStream.Close(); System.Windows.Forms.MessageBox.Show("保存位置:" + reValue); return(reValue); } }
///<summary> ///截取摄像头文件图片 ///</summary> public static string SaveCameraImage(SecondScreen win) { double CameraW = win.FInkCanvas_Camera.ActualWidth; double CameraH = win.FInkCanvas_Camera.ActualHeight; string CameraPath = ""; string CameraFormat = ""; FileInfo finfo = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + @"\XML\" + "Screen.xml"); if (finfo.Exists) { //读取XML文档信息 XmlDocument CameraXml = new XmlDocument(); CameraXml.Load(AppDomain.CurrentDomain.BaseDirectory + @"\XML\" + "Screen.xml"); XmlNode CameraNode = CameraXml.SelectSingleNode("Screen"); XmlElement CameraElement = (XmlElement)CameraNode; //获取保存图片位置 CameraPath = CameraElement["Location"].InnerText + "\\"; //获取保存图片格式 CameraFormat = CameraElement["Format"].InnerText; } if (string.IsNullOrEmpty(CameraPath)) { CameraPath = "C:\\"; } if (string.IsNullOrEmpty(CameraFormat)) { CameraFormat = ".bmp"; } //GUID(全局统一标识符) string reValue = string.Format("{0}{1}" + CameraFormat + "", CameraPath, Guid.NewGuid().ToString()); RenderTargetBitmap RenderBit = new RenderTargetBitmap(Convert.ToInt32(CameraW), Convert.ToInt32(CameraH), 1 / 200, 1 / 200, PixelFormats.Pbgra32); DrawingVisual CameraVisual = new DrawingVisual(); CameraVisual.Transform = new RotateTransform(180, CameraW / 2.0, CameraH / 2.0); DrawingContext CameraContext = CameraVisual.RenderOpen(); // CameraContext.DrawImage(win.FInkCanvas_Camera.Source, new Rect(0, 0, CameraW, CameraH)); CameraContext.PushTransform(new RotateTransform(180, CameraW / 2.0, CameraH / 2.0)); CameraContext.Close(); RenderBit.Render(CameraVisual); if (CameraFormat == ".bmp") { BmpBitmapEncoder bmpEncoder = new BmpBitmapEncoder(); bmpEncoder.Frames.Add(BitmapFrame.Create(RenderBit)); FileStream fileStream = new FileStream(reValue, FileMode.Create, FileAccess.ReadWrite); bmpEncoder.Save(fileStream); fileStream.Close(); System.Windows.Forms.MessageBox.Show("保存位置:" + reValue); return(reValue); } else if (CameraFormat == ".jpg") { JpegBitmapEncoder jpgEncoder = new JpegBitmapEncoder(); jpgEncoder.Frames.Add(BitmapFrame.Create(RenderBit)); FileStream fileStream = new FileStream(reValue, FileMode.Create, FileAccess.ReadWrite); jpgEncoder.Save(fileStream); fileStream.Close(); System.Windows.Forms.MessageBox.Show("保存位置:" + reValue); return(reValue); } else { PngBitmapEncoder pngEncoder = new PngBitmapEncoder(); pngEncoder.Frames.Add(BitmapFrame.Create(RenderBit)); FileStream fileStream = new FileStream(reValue, FileMode.Create, FileAccess.ReadWrite); pngEncoder.Save(fileStream); fileStream.Close(); System.Windows.Forms.MessageBox.Show("保存位置:" + reValue); return(reValue); } }