using Common.system; using System; using System.Threading; using System.Threading.Tasks; using System.Windows; using System.Windows.Forms; using System.Windows.Input; using XHWK.Model; namespace XHWK.WKTool { /// /// 创建微课 /// public partial class CreateAMicroLessonWindow { #region 字段 private FolderBrowserDialog _ofd; private DialogResult _result; #endregion 字段 /// /// 创建微课 /// public CreateAMicroLessonWindow() { InitializeComponent(); ResizeMode = ResizeMode.NoResize; txbStoragePath.Text = FileToolsCommon.GetConfigValue("VideoSavePath"); var versionCode = FileToolsCommon.GetConfigValue("VersionCode"); var versionName = FileToolsCommon.GetConfigValue("VersionName"); var isDebug = FileToolsCommon.GetConfigValue("IsDebug"); var debugStr = "测试版"; if (isDebug == "1") { debugStr = "测试版"; } else if (isDebug == "0") { debugStr = "正式版"; } versionLabel.Content = debugStr + " v" + versionName + "(" + versionCode + ")"; LoadingCarouseImg(); } #region 轮播图 /// /// 图片宽度,每次切换的宽度 /// private double _imgWidth = 502.00; /// /// 轮播时移动增加的宽度 /// private double _imgMove = 1; /// /// 当前展示的图片序号Index从0开始 /// private int _imgNumIndex; /// /// 加载录播图 /// private void LoadingCarouseImg() { new Thread(() => { Thread.Sleep(3000); Dispatcher.Invoke(() => { _imgWidth = ImgCarouse1.ActualWidth; _imgMove = _imgWidth / 250.00; CarouseImg(); //timesCarouse = new System.Timers.Timer(2000); //timesCarouse.Elapsed += TimesCarouse_Elapsed; ; //timesCarouse.Start(); }); }).Start(); } /// /// 轮播图 /// private void CarouseImg() { new Thread(() => { while (true) { for (double i = _imgMove; i < _imgWidth; i += _imgMove) { var i1 = i; Dispatcher.Invoke(() => { if (Math.Abs( i1 + _imgMove) < _imgWidth) { //图片移动轮播 SplCarouse.Margin = new Thickness(SplCarouse.Margin.Left - _imgMove, 0, 0, 0); } else { if (_imgNumIndex >= 2) { _imgNumIndex = 0; SplCarouse.Margin = new Thickness(0, 0, 0, 0); } else { _imgNumIndex++; SplCarouse.Margin = new Thickness(-(_imgNumIndex * _imgWidth), 0, 0, 0); } } }); Thread.Sleep(3); } bool isBreak = false; Dispatcher.Invoke(() => { if (this.Visibility != Visibility.Visible) { SplCarouse.Margin = new Thickness(0); isBreak = true; } }); Thread.Sleep(5000); if (isBreak) { break; } } }).Start(); } #endregion 轮播图 #region 事件 /// /// 关闭 /// /// /// /// /// private void BtnDown_Click(object sender, RoutedEventArgs e) { MessageBoxResult dr = MessageWindow.Show("确定退出系统?", "提示", MessageBoxButton.OKCancel); if (dr == MessageBoxResult.OK) { Environment.Exit(0); } } /// /// 浏览 /// /// /// /// /// private void BtnBrowse_Click(object sender, RoutedEventArgs e) { //string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); _ofd = new FolderBrowserDialog(); _result = _ofd.ShowDialog(); if (_result == System.Windows.Forms.DialogResult.OK) { if (_ofd.SelectedPath != "") { txbStoragePath.Text = _ofd.SelectedPath; } } } private bool _isPressButton; /// /// 开始 /// /// /// /// /// private async void BtnStart_Click(object sender, RoutedEventArgs e) { #region 防止连击 if (_isPressButton) { return; } else { _isPressButton = true; new Thread(() => { Thread.Sleep(500); _isPressButton = false; }).Start(); } #endregion 防止连击 #region 合法性判断 if (string.IsNullOrWhiteSpace(txbExplainName.Text.Trim())) { MessageWindow.Show("讲解名称不可为空!"); return; } if (string.IsNullOrWhiteSpace(txbStoragePath.Text.Trim())) { MessageWindow.Show("路径不可为空!"); return; } try { FileToolsCommon.CreateDirectory(txbStoragePath.Text.Trim()); } catch (Exception) { MessageWindow.Show("路径无法访问,解决方案:\r\n1,检查路径是否可访问。\r\n2,关闭杀毒软件或信任软件。"); return; } #endregion 合法性判断 LblCreate.Visibility = Visibility.Visible; string wkpath = FileToolsCommon.GetLegalPath(txbStoragePath.Text) + txbExplainName.Text.Trim() + "/"; string storagePath = txbStoragePath.Text; string wkName = txbExplainName.Text; await Task.Run(() => { try { //读取微课数据 App.ReadWkData(wkpath); if (App.WKData == null) { App.WKData = new Model_WKData { WkPath = wkpath, WkName = wkName, WkCreateDateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; } try { //创建文件夹 FileToolsCommon.CreateDirectory(App.WKData.WkPath); FileToolsCommon.DeleteDirectory(wkpath + "temp"); FileToolsCommon.DeleteDirectory(wkpath + "_temppath"); } catch (Exception ex) { LogHelper.WriteErrLog("【微课创建课程】文件夹创建删除失败:" + ex.Message, ex); } //存储文件 FileToolsCommon.SetConfigValue("VideoSavePath", storagePath); App.ReadDrawData(); } catch (Exception ex) { LogHelper.WriteErrLog("【微课创建课程】读取课堂数据失败:" + ex.Message, ex); } }); if (App.W_XHMicroLessonSystemWindow == null) { App.W_XHMicroLessonSystemWindow = new MainWindow(); } App.W_XHMicroLessonSystemWindow.Show(); LblCreate.Visibility = Visibility.Hidden; Hide(); } /// /// 窗体移动 /// /// /// /// /// private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { DragMove(); } #endregion 事件 /// /// 检测APP更新 /// private void GetNewApp() { new Thread(o => { //读取本地 App.ReadServiceAddressData(); int versionThis = int.Parse(FileToolsCommon.GetConfigValue("VersionCode")); if (versionThis < 0) { //软件是否更新,版本号小于0不更新 return; } string url = App.apiUrl + "/sapi/apprecord/get_new"; string result = HttpHelper.PostAndRespStr(url, "{}"); var resultObj = JsonHelper.JsonToObj>(result); if (result != null && resultObj.code == 0) { if (resultObj.obj != null) { try { int versionCode = resultObj.obj.versioncode; if (versionThis < versionCode) { Dispatcher.Invoke(() => { string pathTemp = AppDomain.CurrentDomain.BaseDirectory + "Temp\\"; FileToolsCommon.CreateDirectory(pathTemp); AppUpdateShow(resultObj.obj); }); } } catch (Exception ex) { LogHelper.WriteErrLog("【检查更新】(getNewApp)版本号错误:" + ex.Message, ex); } } } }).Start(); } /// /// 应用更新 /// /// /// private void AppUpdateShow(Model_App app) { AppUpdateWin win = new AppUpdateWin(app) { Topmost = true, Owner = this }; win.Show(); } private void Window_Loaded(object sender, RoutedEventArgs e) { GetNewApp(); } private void Window_Closed(object sender, EventArgs e) { Environment.Exit(0); } } }