/// <summary> /// When the program first loaded /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Window_Loaded(object sender, RoutedEventArgs e) { // Create a Tree-View Item to represent Volume var treeViewItem = new TreeViewItem { // Add the title Header = FakeOS.Volume.Name, // Add the path Tag = FakeOS.Volume.Tag, // Name for image Name = "Id" + FakeOS.Volume.Id.ToString() }; // Add a dummy child to the root Tree-View Item treeViewItem.Items.Add(null); var contextMenu = new ContextMenu(); MenuItem menuItemCreate = new MenuItem() { Header = "Create new folder", Tag = FakeOS.Volume.Tag }; menuItemCreate.AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(MenuItem_ClickCreateFolder)); contextMenu.Items.Add(menuItemCreate); MenuItem menuItemCreateFile = new MenuItem() { Header = "Create new file", Tag = FakeOS.Volume.Tag }; menuItemCreateFile.AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(MenuItem_ClickCreateFile)); contextMenu.Items.Add(menuItemCreateFile); MenuItem menuItemRename = new MenuItem() { Header = "Rename", Tag = FakeOS.Volume.Tag }; menuItemRename.AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(MenuItem_ClickRename)); contextMenu.Items.Add(menuItemRename); MenuItem menuItemFormat = new MenuItem() { Header = "Format", Tag = FakeOS.Volume.Tag }; menuItemFormat.AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(MenuItem_ClickFormat)); contextMenu.Items.Add(menuItemFormat); treeViewItem.ContextMenu = contextMenu; // Listen out for item being expended treeViewItem.Expanded += TreeItem_Expanded; // Add an item to the main tree FolderView.Items.Add(treeViewItem); }
//--------------------------------------------------------------------------- private bool fn_SetMenuItem(int kind = 0) {//kind - 0 : One, 1: All, 2:Row, 3:Col // string sPre = string.Empty; string sItem = string.Empty; int nIdex = 0; cmMenu.Items.Clear(); cmMenu.RemoveHandler(MenuItem.ClickEvent, new RoutedEventHandler(menuItemOne_Click)); cmMenu.RemoveHandler(MenuItem.ClickEvent, new RoutedEventHandler(menuItemAll_Click)); for (int i = 0; i < STR_PLATE_STAT.Length; i++) { MenuItem item = new MenuItem(); if (kind == 1) { sPre = "ALL - "; item.AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(menuItemAll_Click)); } else { sPre = "ONE - "; item.AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(menuItemOne_Click)); } sItem = STR_PLATE_STAT[i]; if (sItem != "EMPTY" && sItem != "READY" && sItem != "FINISH") { continue; } item.Header = sPre + STR_PLATE_STAT[i]; item.Tag = nIdex++; cmMenu.Items.Add(item); } cmMenu.IsOpen = true; return(true); }
private void LoadPluginToMenu() { PluginLoader pl = PluginLoader.Instance(); pl.LoadPlugins(); string[] pluginNames = pl.PluginNames(); for (int i = 0; i < pluginNames.Length; i++) { MenuItem newItem = new MenuItem(); newItem.Header = pluginNames[i]; newItem.AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(this.PortOpen)); pmHt.Add(newItem, pluginNames[i]); this.portMenuList.Items.Add(newItem); } }
public void Login_Success() { string address = textBoxServerAddress.Text; int port = int.Parse(textBoxPort.Text); this.Refresh_Grid(); textBoxServerAddress.IsEnabled = false; textBoxPort.IsEnabled = false; buttonConnect.Content = "Disconnect"; buttonUpload.IsEnabled = true; ContextMenu menu = new ContextMenu(); MenuItem item = new MenuItem(); item.Header = "Refresh"; item.DataContext = "Refresh"; item.AddHandler(MenuItem.MouseUpEvent, new MouseButtonEventHandler(Refresh_Click), true); menu.Items.Add(item); gridBackground.ContextMenu = menu; }
/** * * @brief dtGrid1 データ作成時処理 * * @param[in] object sender * * @param[in] DataGridRowEventArgs e * * @return void * * @note セルデータ作成時に、Menu機能も追加するための処理 * 本Methodは dtGrid1 のデザイナから EventMethod追加したもの * */ private void dtGrid1_LoadingRow(object sender, DataGridRowEventArgs e) { // 右クリックメニューの追加。XAMLでやると表示されない?ので、LoadingRowのタイミングで行った DataGridRow datagrid_row = e.Row; //var viewmodel = datagrid_row.DataContext as ListItem_ViewModel; //if (viewmodel == null) return; //datagrid_row.MouseRightButtonUp += new MouseButtonEventHandler(dtGrid1_MouseRightButtonUp); //datagrid_row.MouseLeftButtonUp += new MouseButtonEventHandler(dtGrid1_MouseLeftButtonUp); // メニュー追加 ContextMenu cm = new ContextMenu(); // Menu1 追加 MenuItem m1 = new MenuItem(); m1.Header = "Copy Data"; //m1.Background = new SolidColorBrush(Colors.LightGray); //m1.MouseLeftButtonUp += new MouseButtonEventHandler(MyDataGrid_ContextMenu1_Click); // ★ 上記ではEvent起きず、下記のようににして、第3引数 true にしたら Event発生 // ( 第3引数をtrue は、処理済みのルーティングイベントにも反応とのこと ) m1.AddHandler(MenuItem.MouseLeftButtonUpEvent, new MouseButtonEventHandler(MyDataGrid_ContextMenu1_Click), true); cm.Items.Add(m1); //cm.Background = new SolidColorBrush(Colors.LightGray); //セパレータ cm.Items.Add(new Separator()); // Menu2 追加 MenuItem m2 = new MenuItem(); m2.Header = "Dummy Menu"; //m2.MouseLeftButtonUp += new MouseButtonEventHandler(MyDataGrid_ContextMenu2_Click); m2.AddHandler(MenuItem.MouseLeftButtonUpEvent, new MouseButtonEventHandler(MyDataGrid_ContextMenu2_Click), true); cm.Items.Add(m2); //cm.MouseLeftButtonUp += new MouseButtonEventHandler(MyDataGrid_ContextMenu1_Click); ContextMenuService.SetContextMenu(datagrid_row, cm); }
public static MenuItem Construct(SearchControl sc, MenuItem plainExcelMenuItem) { MenuItem miResult = new MenuItem { Header = ExcelMessage.Reports.NiceToString(), Icon = ExtensionsImageLoader.GetImageSortName("excel.png").ToSmallImage() }; miResult.AddHandler(MenuItem.ClickEvent, new RoutedEventHandler((object sender, RoutedEventArgs e) => { e.Handled = true; if (e.OriginalSource is MenuItem b) //Not to capture the mouseDown of the scrollbar buttons { Lite <ExcelReportEntity> reportLite = (Lite <ExcelReportEntity>)b.Tag; SaveFileDialog sfd = new SaveFileDialog() { AddExtension = true, DefaultExt = ".xlsx", Filter = ExcelMessage.Excel2007Spreadsheet.NiceToString(), FileName = reportLite.ToString() + " - " + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx", OverwritePrompt = true, Title = ExcelMessage.FindLocationFoExcelReport.NiceToString() }; if (sfd.ShowDialog(Window.GetWindow(sc)) == true) { byte[] result = Server.Return((IExcelReportServer r) => r.ExecuteExcelReport(reportLite, sc.GetQueryRequest(true))); File.WriteAllBytes(sfd.FileName, result); System.Diagnostics.Process.Start(sfd.FileName); } } })); Action initialize = null; MenuItem miAdmin = new MenuItem() { Header = "Administrar", Icon = ExtensionsImageLoader.GetImageSortName("folderedit.png").ToSmallImage() }; miAdmin.Click += (object sender, RoutedEventArgs e) => { var query = QueryClient.GetQuery(sc.QueryName); Finder.Explore(new ExploreOptions(typeof(ExcelReportEntity)) { ShowFilters = false, ShowFilterButton = false, FilterOptions = new List <FilterOption> { new FilterOption { ColumnName = "Query", Operation = FilterOperation.EqualTo, Value = query.ToLite(query.IsNew), Frozen = true } }, Closed = (_, __) => miAdmin.Dispatcher.Invoke(() => initialize()) //Refrescar lista de informes tras salir del administrador }); e.Handled = true; }; initialize = () => { miResult.Items.Clear(); List <Lite <ExcelReportEntity> > reports = Server.Return((IExcelReportServer s) => s.GetExcelReports(sc.QueryName)); if (plainExcelMenuItem != null) { miResult.Items.Add(plainExcelMenuItem); miResult.Items.Add(new Separator()); } miResult.Header = new TextBlock { Inlines = { new Run(ExcelMessage.Reports.NiceToString()), reports.Count == 0? (Inline) new Run(): new Bold(new Run(" (" + reports.Count + ")")) } }; if (reports.Count > 0) { foreach (Lite <ExcelReportEntity> report in reports) { MenuItem mi = new MenuItem() { Header = report.ToString(), Icon = ExtensionsImageLoader.GetImageSortName("excelDoc.png").ToSmallImage(), Tag = report, }; miResult.Items.Add(mi); } } miResult.Items.Add(miAdmin); }; initialize(); return(miResult); }
private void MenuItem_ClickCreateFolder(object sender, RoutedEventArgs e) { var dialog = new EnterFolderName(); if (dialog.ShowDialog() == true) { var menuItem = sender as MenuItem; // Find the parant from OS TreeItem parant = FakeOS.Volume.GetTreeItem(menuItem.Tag.ToString()); string newTag = parant.Tag + '\\' + dialog.ResponseText; if (FakeOS.Volume.GetTreeItem(newTag) != null) // So item with this name already exists in the directory { MessageBox.Show(this, $"Item with name {dialog.ResponseText} already exists in the directory.", "Confirmation", MessageBoxButton.OK, MessageBoxImage.Warning); return; } // Create our new child and put it among the parants children TreeItem child = FakeOS.AddDirectory(dialog.ResponseText, ItemType.folder, parant.Id); // Find parant of item user want to delete in the Tree TreeViewItem parantTVI = (TreeViewItem)LogicalTreeHelper.FindLogicalNode(FolderView, "Id" + parant.Id); //FolderView.Items.GetItemAt(0); if (parantTVI.Items.Count == 1 && parantTVI.Items[0] == null) { // Remove the dummy child parantTVI.Items.Clear(); } // Create new Tree-ViewItem for our new child TreeViewItem childTVI = new TreeViewItem() { // Add the title Header = child.Name, // Add the path Tag = child.Tag, // Name for image Name = "Id" + child.Id.ToString() }; // Add a dummy child to the root Tree-View Item for ability to expand our new folder childTVI.Items.Add(null); ContextMenu contextMenu = new ContextMenu(); MenuItem menuItemCreate = new MenuItem() { Header = "Create new folder", Tag = child.Tag }; menuItemCreate.AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(MenuItem_ClickCreateFolder)); contextMenu.Items.Add(menuItemCreate); MenuItem menuItemRename = new MenuItem() { Header = "Rename", Tag = child.Tag }; menuItemRename.AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(MenuItem_ClickRename)); contextMenu.Items.Add(menuItemRename); MenuItem menuItemDelete = new MenuItem() { Header = "Delete", Tag = child.Tag }; menuItemDelete.AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(MenuItem_ClickDelete)); contextMenu.Items.Add(menuItemDelete); MenuItem menuItemCreateFile = new MenuItem() { Header = "Create file", Tag = child.Tag }; menuItemCreateFile.AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(MenuItem_ClickCreateFile)); contextMenu.Items.Add(menuItemCreateFile); childTVI.ContextMenu = contextMenu; // Listen out for item being expended childTVI.Expanded += TreeItem_Expanded; // Add new child Tree-ViewItem to the parant parantTVI.Items.Add(childTVI); FolderView.UpdateLayout(); DrawGrid(); } }
private void MenuItem_ClickCreateFile(object sender, RoutedEventArgs e) { string docName; var dialog = new EnterFolderName(); dialog.Message.Text = "Enter document name"; if (dialog.ShowDialog() == true) { docName = dialog.ResponseText; var menuItem = sender as MenuItem; // Find the parant from OS TreeItem parant = FakeOS.Volume.GetTreeItem(menuItem.Tag.ToString()); string newTag = parant.Tag + '\\' + dialog.ResponseText; if (FakeOS.Volume.GetTreeItem(newTag) != null) // So item with this name already exists in the directory { MessageBox.Show(this, $"Item with name {dialog.ResponseText} already exists in the directory.", "Confirmation", MessageBoxButton.OK, MessageBoxImage.Warning); return; } // Create our new child and put it among the parants children TreeItem child = FakeOS.AddDirectory(docName, ItemType.file, parant.Id); // Find parant of item user want to delete in the Tree TreeViewItem parantTVI = (TreeViewItem)LogicalTreeHelper.FindLogicalNode(FolderView, "Id" + parant.Id); //FolderView.Items.GetItemAt(0); // Exit if the item contains data if (parantTVI.Items.Count == 1 && parantTVI.Items[0] == null) { // Remove the dummy child parantTVI.Items.Clear(); } // Create new Tree-ViewItem for our new child TreeViewItem childTVI = new TreeViewItem() { // Add the title Header = child.Name, // Add the path Tag = child.Tag, // Name for image Name = "Id" + child.Id.ToString() }; ContextMenu contextMenu = new ContextMenu(); MenuItem menuItemOpen = new MenuItem() { Header = "Open", Tag = child.Tag }; MenuItem menuItemRename = new MenuItem() { Header = "Rename", Tag = child.Tag }; menuItemRename.AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(MenuItem_ClickRename)); contextMenu.Items.Add(menuItemRename); menuItemOpen.AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(MenuItem_ClickOpenFile)); contextMenu.Items.Add(menuItemOpen); MenuItem menuItemDelete = new MenuItem() { Header = "Delete", Tag = child.Tag }; menuItemDelete.AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(MenuItem_ClickDelete)); contextMenu.Items.Add(menuItemDelete); childTVI.ContextMenu = contextMenu; // Add new child Tree-ViewItem to the parant parantTVI.Items.Add(childTVI); FolderView.UpdateLayout(); var notBad = new NotBad(); notBad.Title += " " + docName; if (notBad.ShowDialog() == true) { child.Document.Content = notBad.TextContent.Text; Drive.Write(parant, child, child.Document.Content, false); child.Document.LastModification = DateTime.UtcNow; } else { Drive.Write(parant, child, child.Name, false); } DrawGrid(); } }
/// <summary> /// When a disk/folder is expanded find sub folders/files /// </summary> /// <param name="sender">TreeViewItem</param> /// <param name="e"></param> private void TreeItem_Expanded(object sender, RoutedEventArgs e) { var treeViewItem = (TreeViewItem)sender; // Exit if the item contains data if (treeViewItem.Items.Count != 1 || treeViewItem.Items[0] != null) { return; } // Remove the dummy child treeViewItem.Items.Clear(); // Get the full path var fullPath = (string)treeViewItem.Tag; // Create a blank list for directories var directories = new List <string>(); // Get nested directories foreach (var dir in FakeOS.GetDirectories(fullPath)) { var newChildTreeViewItem = new TreeViewItem { Header = dir.Name, // Let's puth the type here to conveert it into image later :) Name = "Id" + dir.Id.ToString(), Tag = dir.Tag }; ContextMenu contextMenu = new ContextMenu(); MenuItem menuItemDelete = new MenuItem() { Header = "Delete", Tag = dir.Tag }; MenuItem menuItemRename = new MenuItem() { Header = "Rename", Tag = FakeOS.Volume.Tag }; menuItemRename.AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(MenuItem_ClickRename)); contextMenu.Items.Add(menuItemRename); if (dir.Type == ItemType.folder || dir.Type == ItemType.drive) { newChildTreeViewItem.Items.Add(null); MenuItem menuItemCreateFolder = new MenuItem() { Header = "Create new folder", Tag = dir.Tag }; menuItemCreateFolder.AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(MenuItem_ClickCreateFolder)); contextMenu.Items.Add(menuItemCreateFolder); MenuItem menuItemCreateFile = new MenuItem() { Header = "Create new file", Tag = dir.Tag }; menuItemCreateFile.AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(MenuItem_ClickCreateFile)); contextMenu.Items.Add(menuItemCreateFile); newChildTreeViewItem.ContextMenu = contextMenu; newChildTreeViewItem.Expanded += TreeItem_Expanded; } else // If it is a file let's add an Open command { MenuItem menuItemOpenFile = new MenuItem() { Header = "Open", Tag = dir.Tag }; menuItemOpenFile.AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(MenuItem_ClickOpenFile)); contextMenu.Items.Add(menuItemOpenFile); } // Bind the handler of removing items menuItemDelete.AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(MenuItem_ClickDelete)); contextMenu.Items.Add(menuItemDelete); newChildTreeViewItem.ContextMenu = contextMenu; treeViewItem.Items.Add(newChildTreeViewItem); } if (treeViewItem.Name == ItemType.folder.ToString()) { treeViewItem.Name = "folderOpen"; } }
public void AddMenuItem(MenuItem item, Action <object, RoutedEventArgs> action) { item.AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(action)); _characterContextMenu.Items.Add(item); }
private void DrawFile(int row, int column, int type, string filename) { Image image = new Image(); image.Height = 50; image.VerticalAlignment = VerticalAlignment.Top; BitmapImage bitmap = new BitmapImage(); bitmap.BeginInit(); switch (type) { case 1: bitmap.UriSource = new Uri("pack://application:,,,/Images/file.png"); break; case 2: bitmap.UriSource = new Uri("pack://application:,,,/Images/file_cloud.png"); break; case 3: bitmap.UriSource = new Uri("pack://application:,,,/Images/file_download.png"); break; case 4: bitmap.UriSource = new Uri("pack://application:,,,/Images/file_upload.png"); break; } bitmap.EndInit(); image.Source = bitmap; ContextMenu menu = new ContextMenu(); MenuItem item1 = new MenuItem(); item1.Header = "Download"; item1.DataContext = filename + "?Download"; item1.AddHandler(MenuItem.MouseUpEvent, new MouseButtonEventHandler(Download_Click), true); MenuItem item2 = new MenuItem(); item2.Header = "Open"; item2.DataContext = filename + "?Open"; item2.AddHandler(MenuItem.MouseUpEvent, new MouseButtonEventHandler(Open_Click), true); MenuItem item3 = new MenuItem(); item3.Header = "Remove"; item3.DataContext = filename + "?Remove"; item3.AddHandler(MenuItem.MouseUpEvent, new MouseButtonEventHandler(Remove_Click), true); MenuItem item4 = new MenuItem(); item4.Header = "Details"; item4.DataContext = filename + "?Details"; item4.AddHandler(MenuItem.MouseUpEvent, new MouseButtonEventHandler(Details_Click), true); menu.Items.Add(item1); if (type == 1) { item1.Header = "Update"; menu.Items.Add(item2); } menu.Items.Add(item3); menu.Items.Add(item4); image.ContextMenu = menu; Label label = new Label(); label.Content = filename; label.Height = 20; label.VerticalAlignment = VerticalAlignment.Bottom; label.HorizontalContentAlignment = HorizontalAlignment.Center; label.VerticalContentAlignment = VerticalAlignment.Center; label.FontSize = 9; gridFiles.Children.Add(image); gridFiles.Children.Add(label); Grid.SetRow(image, row); Grid.SetRow(label, row); Grid.SetColumn(image, column); Grid.SetColumn(label, column); }