/// <summary> /// 回傳資料夾順序的字串 /// </summary> /// <returns></returns> public String func_取得資料夾順序() { //儲存資料夾順序 String sum = ""; foreach (var item in stackPanel_1.Children) { U_分頁_item u = (U_分頁_item)item; sum += u.Text + "\t"; } return(sum); }
/// <summary> /// 刪除所有項目 /// </summary> public void fun_delete_all() { var ar = sp_容器.Children; if (ar.Count == 0) { return; } ar.RemoveRange(0, ar.Count); b_but_text = null; }
/// <summary> /// 設定目前選取的項目 /// </summary> /// <param name="but"></param> public void fun_SetSelect(U_分頁_item but) { if (b_but_text != null) { func_修改顏色_預設(b_but_text); } //重複點選就不執行 if (b_but_text != but) { ac_click(but.Text); } b_but_text = but; func_修改顏色_選中(but); }
private void func_修改顏色_移入(U_分頁_item sender) { sender.Background = Sol_3; //sender.tex.Foreground = Sol_白; }
private void func_修改顏色_選中(U_分頁_item sender) { sender.Background = Sol_2; //sender.tex.Foreground = Sol_2 ; }
/// <summary> /// 給項目註冊所需要的事件 /// </summary> /// <param name="but"></param> public void fun_addEvent(U_分頁_item but) { sp_容器.Children.Add(but); but.MouseDown += (object sender, MouseButtonEventArgs e) => { b_拖曳 = true; if (b_but_text == null) { b_but_text = (U_分頁_item)sender; } else { ac_change(b_but_text.Text);//執行 切換 事件 } fun_SetSelect((U_分頁_item)sender); /* * func_修改顏色_預設(b_but_text); * b_but_text = ((U_分頁_item)sender); * func_修改顏色_選中((U_分頁_item)sender); * ac_click(((U_分頁_item)sender).Text);//執行 點擊 事件 */ }; but.MouseUp += (object sender, MouseButtonEventArgs e) => { b_拖曳 = false; }; but.MouseEnter += (object sender, MouseEventArgs e) => { if (b_拖曳 && e.LeftButton == MouseButtonState.Pressed) { U_分頁_item x = ((U_分頁_item)sender); String x2 = b_but_text.Text; b_but_text.Text = x.Text; ((U_分頁_item)sender).Text = x2; //交換顏色 func_修改顏色_預設(b_but_text); func_修改顏色_選中((U_分頁_item)sender); b_but_text = x; } else { if (sender != b_but_text) { func_修改顏色_移入((U_分頁_item)sender); } } }; but.MouseLeave += (object sender, MouseEventArgs e) => { if (sender == b_but_text) { func_修改顏色_選中((U_分頁_item)sender); } else { func_修改顏色_預設((U_分頁_item)sender); } }; }
/// <summary> /// 重新產生分頁的頁籖 /// </summary> public void func_分頁重新整理(bool bool_第一次執行 = false) { func_單層目錄(); if (bool_第一次執行 == false) { //儲存目前的設定值 SET.s_資料夾順序 = func_取得資料夾順序(); SET.s_目前選取的資料夾 = c_分頁.b_but_text.Text; } String s_dir = func_取得儲存根目錄(); //讀取 List <String> ar_dir = new List <string>(); //之前儲存的設定值 foreach (var item in SET.s_資料夾順序.Split('\t')) { if (item.Trim() != "") { if (Directory.Exists(s_dir + "\\" + item.Trim())) { ar_dir.Add(item); } } } //實際存在的資料夾 String[] ar_file = Directory.GetDirectories(s_dir); Array.Sort(ar_file, new Sort_自然排序_正());//自然排序 foreach (var item in ar_file) { String s2 = System.IO.Path.GetFileName(item); if (Directory.Exists(item)) { if (ar_dir.Contains(s2) == false) { ar_dir.Add(s2); } } } //如果沒有子資料夾 if (ar_dir.Count == 0) { //新增資料夾 if (bool_單層儲存路徑 == false) { Directory.CreateDirectory(s_dir + "\\" + "New Folder 1"); } ar_dir.Add("New Folder 1"); } //刪除所有項目 c_分頁.fun_delete_all(); foreach (var item in ar_dir) { var bu = new U_分頁_item { Text = item }; bu.func_初始化(this); c_分頁.fun_addEvent(bu); if (item == SET.s_目前選取的資料夾) { c_分頁.fun_SetSelect(bu); } } //如果都沒有選擇任何頁籖,就用選擇第一個 if (c_分頁.b_but_text == null) { c_分頁.fun_SetSelect((U_分頁_item)stackPanel_1.Children[0]); } //儲存目前的設定值 SET.s_資料夾順序 = func_取得資料夾順序(); SET.s_目前選取的資料夾 = c_分頁.b_but_text.Text; }