public C_按鈕選單_搜圖(MainWindow m) { this.M = m; u_menu_搜圖 = new U_menu(m); M.but_搜圖.Click += (sender, e) => { u_menu_搜圖.func_open(M.but_搜圖); }; u_menu_搜圖.func_add_menu("sauceNAO 搜圖", new BitmapImage(new Uri("/imgs/gs_sauceNAO.bmp", UriKind.Relative)), () => { fun_執行搜圖("saucenao"); }); u_menu_搜圖.func_add_menu("Yandex 搜圖", new BitmapImage(new Uri("/imgs/gs_yandex.png", UriKind.Relative)), () => { fun_執行搜圖("yandex"); }); u_menu_搜圖.func_add_menu("Google 搜圖", new BitmapImage(new Uri("/imgs/gs_google.png", UriKind.Relative)), () => { fun_執行搜圖("google"); }); u_menu_搜圖.func_add_menu("Ascii2d 搜圖", new BitmapImage(new Uri("/imgs/gs_ascii2d.bmp", UriKind.Relative)), () => { fun_執行搜圖("ascii2d"); }); u_menu_搜圖.func_add_menu("bing 搜圖", new BitmapImage(new Uri("/imgs/gs_bing.png", UriKind.Relative)), () => { fun_執行搜圖("bing"); }); u_menu_搜圖.func_add_menu("IQDB 搜圖", new BitmapImage(new Uri("/imgs/gs_IQDB.png", UriKind.Relative)), () => { fun_執行搜圖("iqdb"); }); }
/// <summary> /// /// </summary> /// <param name="m"></param> public C_按鈕選單_複製(MainWindow m) { this.M = m; u_menu_複製 = new U_menu(m); m.but_複製.Click += (sender, e) => { func_隱藏不必要的選項(); u_menu_複製.func_open(M.but_複製); }; event_複製的選單(); }
/// <summary> /// /// </summary> /// <param name="m"></param> public C_旋轉(MainWindow m) { this.M = m; u_menu_旋轉 = new U_menu(m); M.but_旋轉.Click += (sender, e) => { u_menu_旋轉.func_open(M.but_旋轉); }; u_menu_旋轉.func_add_menu_icon("順時針 90°", "icon_順時針90", () => { func_旋轉_順時針_90(); }); u_menu_旋轉.func_add_menu_icon("逆時針 90°", "icon_逆時針90", () => { func_旋轉_逆時針_90(); }); u_menu_旋轉.func_add_水平線(); u_menu_旋轉.func_add_menu_icon("水平鏡像", "icon_水平翻轉", () => { func_旋轉_水平(); }); u_menu_旋轉.func_add_menu_icon("垂直鏡像", "icon_垂直翻轉", () => { func_旋轉_垂直(); }); u_menu_旋轉.func_add_水平線(); u_menu_旋轉.func_add_menu_icon("初始化旋轉", "icon_初始化旋轉", () => { if (int_旋轉 == 270) { int_旋轉 = -90; } if (int_旋轉 == 360) { int_旋轉 = 0; } fun_旋轉動畫( M.grid_img, int_旋轉, 0, bool_水平鏡像, false, bool_垂直鏡像, false ); int_旋轉 = 0; bool_水平鏡像 = false; bool_垂直鏡像 = false; // fun_初始化旋轉(0); }); }
/// <summary> /// /// </summary> private void event_其他程式啟動_選單(List <data_開啟程式> ar) { M.but_用外部程式開啟.Click += (sender, e) => { u_menu_用外部程式開啟.func_open(M.but_用外部程式開啟); }; u_menu_用外部程式開啟.func_add_menu("檔案右鍵選單", null, () => { fun_顯示原生右鍵選單(false); }); u_menu_用外部程式開啟.func_add_menu("開啟檔案位置", null, () => { M.fun_用檔案總管開啟目前圖片(); }); u_menu_用外部程式開啟.func_add_menu("列印", null, () => { try { var pr = new System.Diagnostics.Process(); pr.StartInfo.FileName = M.ar_path[M.int_目前圖片位置];//文件全稱-包括文件後綴 pr.StartInfo.CreateNoWindow = true; pr.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; pr.StartInfo.Verb = "Print"; pr.Start(); } catch (Exception e2) { MessageBox.Show("找不到對應開啟的程式:\n" + e2.ToString(), "列印失敗"); } }); u_menu_用外部程式開啟.func_add_menu("設成桌布", null, () => { if (File.Exists(M.ar_path[M.int_目前圖片位置])) //判別檔案是否存在於對應的路徑 { try { SystemParametersInfo(20, 1, M.ar_path[M.int_目前圖片位置], 0x1 | 0x2); //存在成立,修改桌布 (uActuin 20 參數為修改wallpaper } catch (Exception e2) { MessageBox.Show("設定桌布失敗:\n" + e2.ToString(), "失敗"); } } }); u_menu_用外部程式開啟.func_add_menu("選擇其他程式", null, () => { if (File.Exists(M.ar_path[M.int_目前圖片位置])) //判別檔案是否存在於對應的路徑 { try { String _path = M.ar_path[M.int_目前圖片位置]; Process.Start(new ProcessStartInfo("rundll32.exe") { Arguments = $"shell32.dll,OpenAs_RunDLL {_path}", WorkingDirectory = Path.GetDirectoryName(_path) }); } catch (Exception e2) { MessageBox.Show(e2.ToString(), "Error"); } } }); u_menu_用外部程式開啟.func_add_水平線(); //使用者自定的名單 for (int i = 0; i < ar.Count; i++) { int xx = i; BitmapSource img = null; try { img = M.c_影像.BitmapToBitmapSource(ar[i].img); } catch { } u_menu_用外部程式開啟.func_add_menu(ar[i].name, img, () => { try { System.Diagnostics.Process.Start(ar[xx].path, "\"" + M.ar_path[M.int_目前圖片位置] + "\""); } catch (Exception e2) { MessageBox.Show(e2.ToString()); } }); }//for }