/// <summary> /// Gets the submenu from the collection with the specified text, optionally creating one if not found. /// </summary> /// <returns>The submenu instance if found, or a new submenu instance added at the specified order.</returns> /// <param name="submenuText">Text of the submenu to find or add.</param> /// <param name="order">Order of the submenu item to add. Not used if there is already a submenu with the specified text.</param> /// <param name="plaintextMatch">If set to <c>true</c>, matches excluding any mnemonic symbol idenfifiers.</param> /// <param name="create">If set to <c>true</c>, creates the menu if it doesn't exist in the collection, otherwise <c>false</c>.</param> public ButtonMenuItem GetSubmenu(string submenuText, int order = 0, bool plaintextMatch = true, bool create = true) { if (string.IsNullOrEmpty(submenuText)) { throw new ArgumentOutOfRangeException(nameof(submenuText), "submenuText must be a non null, non-empty value"); } // replace accelerators if plaintextMatch is true string convert(string s) => plaintextMatch?s?.Replace("&", "") : s; var matchText = convert(submenuText); bool match(ButtonMenuItem r) => convert(r.Text) == matchText; var submenu = this.OfType <ButtonMenuItem>().FirstOrDefault(match); if (submenu == null && create) { submenu = new ButtonMenuItem { Text = submenuText, Order = order, Trim = true }; Add(submenu); } return(submenu); }
void LogEvents(ButtonMenuItem item) { item.Click += delegate { Log.Write(item, "Click, Item: {0}", item.Text); }; }
public PanelShellManager(PluginParameter data) { InitUi(); // 注册事件 ShellManager.GetDataTableCompletedToDo += ShellManagerGetDataTableCompletedToDo; ShellManager.DeleteCompletedToDo += ShellManagerDeleteCompletedToDo; ShellManager.InsertCompletedToDo += ShellManagerInsertCompletedToDo; ShellManager.UpdateCompletedToDo += ShellManagerUpdateCompletedToDo; // 载入shell数据 LoadWebshellData(); // 添加插件到右键菜单 foreach (var plugin in PluginProvider.GetPlugins()) { // IsShowInRightContext if (plugin.PluginSetting.LoadPath.ToLower() == "shellmanager") { string title = plugin.PluginInfo.Name; // 添加到Tsmi_Plugins中 var pluginItem = new ButtonMenuItem(); pluginItem.ID = title; pluginItem.Text = title; pluginItem.Click += pluginItem_Click; pluginItem.Tag = plugin; _rightMenuWebshell.Items.Add(pluginItem); } } }
public MenuConnector(ButtonAction action, ButtonMenuItem menuItem) { this.action = action; this.menuItem = menuItem; this.menuItem.Click += HandleClick; this.menuItem.Validate += HandleValidate; }
void Init() { //_contextMenuRightMenu _contextMenuRightMenu = new ContextMenu(); var addItem = new ButtonMenuItem {Text = "Add"}; addItem.Click += addItem_Click; var delItem = new ButtonMenuItem {Text = "Delete"}; delItem.Click += delItem_Click; _contextMenuRightMenu.Items.Add(addItem); _contextMenuRightMenu.Items.Add(delItem); //_gridViewHeader _gridViewHeader = new GridView { AllowMultipleSelection = false, BackgroundColor = Colors.White, Size = new Size(200, 200), ShowCellBorders = true }; //_gridViewHeader.CellEditing += _gridViewHeader_CellEditing; //_gridViewHeader.CellEdited += _gridViewHeader_CellEdited; _gridViewHeader.Columns.Add(new GridColumn { HeaderText = "Key", DataCell = new TextBoxCell("Key"), Editable = true, Sortable = true, AutoSize = true }); _gridViewHeader.Columns.Add(new GridColumn { HeaderText = "Value", DataCell = new TextBoxCell("Value"), Editable = true, Sortable = true, AutoSize = false, Width = 200 }); _gridViewHeader.ContextMenu = _contextMenuRightMenu; _gridViewHeader.MouseUp += (sender, e) => { if (e.Buttons == MouseButtons.Alternate) { if (_gridViewHeader.ContextMenu != null) _gridViewHeader.ContextMenu.Show(this); } }; var layout = new DynamicLayout { Padding = new Padding(20, 20), Spacing = new Size(10, 10) }; layout.AddRow(_gridViewHeader); layout.Add(null); this.Content = layout; }
public DynamicMenuBar() { var count = 0; var menu = Application.Instance.MainForm.Menu; ISubmenu editMenu = menu.Items.GetSubmenu("Edit"); // selection of which menu to add/remove var menuToEdit = new DropDown { DataStore = menu.Items.OfType<ISubmenu>().Union(new ISubmenu[] { menu }).ToList(), ItemTextBinding = Binding.Delegate((MenuItem item) => item.Text, defaultGetValue: "Main Menu") }; menuToEdit.SelectedValueBinding.Bind(() => editMenu, v => editMenu = v as ISubmenu); // tag to identify items that we've added var dynamicTag = new object(); // button to add a new item var addToEditMenu = new Button { Text = "Add MenuItem" }; addToEditMenu.Click += (sender, e) => { var itemNumber = ++count; var item = new ButtonMenuItem { Text = "Dynamic Menu Item " + itemNumber, Tag = dynamicTag }; item.Click += (s, ee) => Log.Write(item, "Clicked " + itemNumber); editMenu.Items.Add(item); }; // button to remove the item var removeFromEditMenu = new Button { Text = "Remove MenuItem" }; removeFromEditMenu.Click += (sender, e) => { var item = editMenu.Items.LastOrDefault(r => Equals(r.Tag, dynamicTag)); if (item != null) { editMenu.Items.Remove(item); } }; // layout of the form Content = new StackLayout { Spacing = 5, HorizontalContentAlignment = HorizontalAlignment.Center, Items = { null, new StackLayout { Orientation = Orientation.Horizontal, Spacing = 5, Items = { new Label { Text = "Submenu to add to", VerticalAlignment = VerticalAlignment.Center }, menuToEdit } }, new StackLayout { Orientation = Orientation.Horizontal, Spacing = 5, Items = { addToEditMenu, removeFromEditMenu } }, null } }; }
public override MenuItem GenerateMenuItem(Generator generator) { if (command != null) return command.CreateMenuItem(generator); var mi = new ButtonMenuItem(generator); mi.Text = MenuText; mi.Shortcut = Accelerator; mi.Enabled = Enabled; if (Image != null) mi.Image = Image; if (!string.IsNullOrEmpty(MenuItemStyle)) mi.Style = MenuItemStyle; new MenuConnector(this, mi); return mi; }
private ButtonMenuItem GetSubmenu(MenuItemCollection items, string submenuText, bool create = true) { var submenu = items.OfType<ButtonMenuItem>().FirstOrDefault(r => r.ID == submenuText); if (submenu == null && create) { submenu = new ButtonMenuItem { ID = submenuText, Text = submenuText, Order = 10 }; items.Add(submenu); } return submenu; }
MenuBar GenerateMenuBar() { var docs = new Actions.Docs(); var checkUpdate = new Actions.CheckUpdate(); var about = new Actions.About(); var quit = new Actions.Quit(); var setting = new Actions.Setting(); //var file = new ButtonMenuItem {Text = AltStrRes.File, ID = "File"}; var service = _servicesMenuItem = new ButtonMenuItem { Text = AltStrRes.Services, ID = "Services" }; var plugin = _pluginsMenuItem = new ButtonMenuItem { Text = AltStrRes.Plugins, ID = "Plugins" }; //var help = new ButtonMenuItem { Text = AltStrRes.Help, ID = "Help" }; var menuBar = new MenuBar { Trim = false, Items = { service, plugin }, ApplicationItems = { setting }, HelpItems = { docs, checkUpdate }, QuitItem = quit, AboutItem = about, IncludeSystemItems = MenuBarSystemItems.None }; var file = menuBar.ApplicationMenu; file.ID = "File"; if (!Platform.IsMac) { file.Text = AltStrRes.File; } var help = menuBar.HelpMenu; help.ID = "Help"; help.Text = AltStrRes.Help; return menuBar; }
void InitUi() { //_itemRefreshStatus _itemRefreshStatus = new ButtonMenuItem { Text = StrRes.GetString("StrRefreshStatus", "Refresh Status") }; _itemRefreshStatus.Click += _itemRefreshStatus_Click; //_itemCopyServerCode _itemCopyServerCode = new ButtonMenuItem { Text = StrRes.GetString("StrCopyServerCode", "Copy ServerCode") }; _itemCopyServerCode.Click += _itemCopyServerCode_Click; //_itemAdd _itemAdd = new ButtonMenuItem { Text = StrRes.GetString("StrAdd","Add") }; _itemAdd.Click += _itemAdd_Click; //_itemEdit _itemEdit = new ButtonMenuItem { Text = StrRes.GetString("StrEdit","Edit") }; _itemEdit.Click += _itemEdit_Click; //_itemDelete _itemDelete = new ButtonMenuItem { Text = StrRes.GetString("StrDelete","Delete") }; _itemDelete.Click += _itemDelete_Click; //rightMenu_Webshell _rightMenuWebshell = new ContextMenu(); _rightMenuWebshell.Items.Add(_itemRefreshStatus); _rightMenuWebshell.Items.Add(_itemCopyServerCode); _rightMenuWebshell.Items.Add(new SeparatorMenuItem()); _rightMenuWebshell.Items.Add(_itemAdd); _rightMenuWebshell.Items.Add(_itemEdit); _rightMenuWebshell.Items.Add(_itemDelete); _rightMenuWebshell.Items.Add(new SeparatorMenuItem()); //_gridViewShell _gridViewShell = CreateListView(); _gridViewShell.ContextMenu = _rightMenuWebshell; _gridViewShell.MouseUp += (sender, e) => { if (e.Buttons == MouseButtons.Alternate) { _gridViewShell.ContextMenu.Show(_gridViewShell); } }; //_gridViewShell.CellDoubleClick += _gridViewShell_CellDoubleClick; //_gridViewShell.ColumnHeaderClick += _gridViewShell_ColumnHeaderClick; var layout = new DynamicLayout { Padding = new Padding(0), Spacing = new Size(10, 10) }; layout.Add(_gridViewShell); this.Content = layout; }
/// <summary> /// Gets the submenu from the collection with the specified text, optionally creating one if not found. /// </summary> /// <returns>The submenu instance if found, or a new submenu instance added at the specified order.</returns> /// <param name="submenuText">Text of the submenu to find or add.</param> /// <param name="order">Order of the submenu item to add. Not used if there is already a submenu with the specified text.</param> /// <param name="plaintextMatch">If set to <c>true</c>, matches excluding any mnemonic symbol idenfifiers.</param> /// <param name="create">If set to <c>true</c>, creates the menu if it doesn't exist in the collection, otherwise <c>false</c>.</param> public ButtonMenuItem GetSubmenu(string submenuText, int order = 0, bool plaintextMatch = true, bool create = true) { // replace accelerators if plaintextMatch is true Func <string, string> convert = s => plaintextMatch?s.Replace("&", "") : s; var matchText = convert(submenuText); var submenu = this.OfType <ButtonMenuItem>().FirstOrDefault(r => convert(r.Text) == matchText); if (submenu == null && create) { submenu = new ButtonMenuItem { Text = submenuText, Order = order, Trim = true }; Add(submenu); } return(submenu); }
public override MenuItem GenerateMenuItem(Generator generator) { if (command != null) { return(command.CreateMenuItem(generator)); } var mi = new ButtonMenuItem(generator); mi.Text = MenuText; mi.Shortcut = Accelerator; mi.Enabled = Enabled; if (Image != null) { mi.Image = Image; } if (!string.IsNullOrEmpty(MenuItemStyle)) { mi.Style = MenuItemStyle; } new MenuConnector(this, mi); return(mi); }
void Init() { //_textboxUrl _textboxUrl = new TextBox(); _textboxUrl.KeyDown += _textboxUrl_KeyDown; //_buttonDir _buttonDir = new Button {Text = StrRes.GetString("StrDir","Dir")}; _buttonDir.Click += _buttonDir_Click; //_treeViewDirs _treeViewDirs = new TreeViewPlus(); _treeViewDirs.Activated += _treeViewDirs_Activated; //_itemCopyNodePath _itemCopyNodePath = new ButtonMenuItem { Text = StrRes.GetString("StrCopyNodePath", "Copy Path") }; _itemCopyNodePath.Click += _itemCopyNodePath_Click; //rightMenu_TreeViewDirs var rightMenuTreeViewDirs = new ContextMenu(); rightMenuTreeViewDirs.Items.Add(_itemCopyNodePath); _treeViewDirs.ContextMenu = rightMenuTreeViewDirs; _treeViewDirs.MouseUp += (sender, e) => { if (e.Buttons == MouseButtons.Alternate) { _treeViewDirs.ContextMenu.Show(_treeViewDirs); } }; _gridViewFile = new GridView { AllowMultipleSelection = false, BackgroundColor = Colors.White, ShowCellBorders = false, RowHeight = 21 }; _gridViewFile.CellEditing += _gridViewFile_CellEditing; _gridViewFile.CellEdited += _gridViewFile_CellEdited; _gridViewFile.CellDoubleClick += _gridViewFile_CellDoubleClick; _gridViewFile.ColumnHeaderClick += _gridViewFile_ColumnHeaderClick; _gridViewFile.Columns.Add(new GridColumn { ID = "Image", HeaderText = ">", //DataCell = new ImageTextCell("Image","Name"), DataCell = new ImageViewCell("Image"), Sortable = true, Resizable = false, Width = 21 }); _gridViewFile.Columns.Add(new GridColumn { ID = "Name", HeaderText = StrRes.GetString("StrName","Name"), DataCell = new TextBoxCell("Name"), Sortable = true, AutoSize = false, Editable = true, Width = 200 }); _gridViewFile.Columns.Add(new GridColumn { ID = "Time", HeaderText = StrRes.GetString("StrTime","Time"), DataCell = new TextBoxCell("FileMTime"), Sortable = true, AutoSize = false, Editable = true, Width = 150 }); _gridViewFile.Columns.Add(new GridColumn { ID = "Size", HeaderText = StrRes.GetString("StrSize","Size"), DataCell = new TextBoxCell("FileSize"), Sortable = true, AutoSize = false, Width = 100 }); _gridViewFile.Columns.Add(new GridColumn { ID = "Attribute", HeaderText = StrRes.GetString("StrAttribute","Attribute"), DataCell = new TextBoxCell("FileAttributes"), Sortable = true, AutoSize = false, Width = 70 }); _gridViewFile.MouseUp += (sender, e) => { if (e.Buttons == MouseButtons.Alternate) { if (_gridViewFile.ContextMenu!=null) _gridViewFile.ContextMenu.Show(_gridViewFile); } }; var layout = new DynamicLayout { Padding = new Padding(0, 0), Spacing = new Size(5, 5) }; layout.BeginVertical(); layout.BeginHorizontal(); layout.AddCentered(_textboxUrl, xscale: true, horizontalCenter: false); layout.AddCentered(_buttonDir, horizontalCenter: false); layout.EndHorizontal(); layout.EndVertical(); layout.AddRow(new Splitter { Panel1 = _treeViewDirs, Panel2 = _gridViewFile, Orientation = SplitterOrientation.Horizontal, Position = 200, }); Content = layout; }
TreeView ImagesAndMenu() { var control = new TreeView { Size = new Size(100, 150) }; #if DESKTOP var menu = new ContextMenu(); var item = new ButtonMenuItem { Text = "Click Me!" }; item.Click += delegate { if (control.SelectedItem != null) Log.Write(item, "Click, Rows: {0}", control.SelectedItem.Text); else Log.Write(item, "Click, no item selected"); }; menu.Items.Add(item); control.ContextMenu = menu; #endif control.DataStore = CreateTreeItem(0, "Item", Image); LogEvents(control); return control; }
ContextMenu CreateContextMenu(GridView grid, SelectableFilterCollection<MyGridItem> filtered) { // Context menu var menu = new ContextMenu(); var item = new ButtonMenuItem { Text = "Click Me!" }; item.Click += (sender, e) => { if (grid.SelectedRows.Any()) Log.Write(item, "Click, Rows: {0}", SelectedRowsString(grid)); else Log.Write(item, "Click, no item selected"); }; menu.Items.Add(item); // Delete menu item: deletes the item from the store, the UI updates via the binding. var deleteItem = new ButtonMenuItem { Text = "Delete Item" }; deleteItem.Click += (s, e) => { var i = grid.SelectedItems.First() as MyGridItem; if (i != null) filtered.Remove(i); }; menu.Items.Add(deleteItem); // Insert item: inserts an item into the store, the UI updates via the binding. var insertItem = new ButtonMenuItem { Text = "Insert Item at the start of the list" }; insertItem.Click += (s, e) => { var i = grid.SelectedItems.First() as MyGridItem; if (i != null) filtered.Insert(0, new MyGridItem(new Random(), 0)); }; menu.Items.Add(insertItem); var subMenu = menu.Items.GetSubmenu("Sub Menu"); item = new ButtonMenuItem { Text = "Item 5" }; item.Click += (s, e) => Log.Write(item, "Clicked"); subMenu.Items.Add(item); item = new ButtonMenuItem { Text = "Item 6" }; item.Click += (s, e) => Log.Write(item, "Clicked"); subMenu.Items.Add(item); return menu; }
private void _createMenu() { this.Menu = new MenuBar(); var tools = ExtensionManager.GetExtensions<ICustomTool>() .Where(tool => tool.Active()) .ToArray(); if (tools.Length > 0) { var menu = new ButtonMenuItem() { Text = "Tools" }; this.Menu.Items.Add(menu); foreach(var t in tools) { var item = new ButtonMenuItem() { Text = t.Name }; item.Click += (o, e) => t.Launch(); menu.Items.Add(item); } } }
Control WithContextMenu() { var control = new ListBox { Size = new Size (100, 150) }; LogEvents(control); for (int i = 0; i < 10; i++) { control.Items.Add(new ListItem { Text = "Item " + i }); } var menu = new ContextMenu(); var item = new ButtonMenuItem { Text = "Click Me!" }; item.Click += delegate { if (control.SelectedValue != null) Log.Write(item, "Click, Item: {0}", control.SelectedValue.Text); else Log.Write(item, "Click, no item selected"); }; menu.Items.Add(item); control.ContextMenu = menu; return control; }
GridView WithContextMenuAndFilter() { var control = Default(); control.AllowMultipleSelection = true; var items = control.DataStore as DataStoreCollection; // Filter filterText.TextChanged += (s, e) => { var filterItems = (filterText.Text ?? "").Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); // Set the filter delegate on the GridView control.Filter = (filterItems.Length == 0) ? (Func<object, bool>)null : o => { var i = o as MyGridItem; var matches = true; // Every item in the split filter string should be within the Text property foreach (var filterItem in filterItems) if (i.Text.IndexOf(filterItem, StringComparison.CurrentCultureIgnoreCase) == -1) { matches = false; break; } return matches; }; }; // Context menu var menu = new ContextMenu(); var item = new ButtonMenuItem { Text = "Click Me!" }; item.Click += delegate { if (control.SelectedRows.Any()) Log.Write(item, "Click, Rows: {0}", SelectedRowsString(control)); else Log.Write(item, "Click, no item selected"); }; menu.Items.Add(item); // Delete menu item: deletes the item from the store, the UI updates via the binding. var deleteItem = new ButtonMenuItem { Text = "Delete Item" }; deleteItem.Click += (s, e) => { var i = control.SelectedItems.First() as MyGridItem; if (i != null) items.Remove(i); }; menu.Items.Add(deleteItem); // Insert item: inserts an item into the store, the UI updates via the binding. var insertItem = new ButtonMenuItem { Text = "Insert Item at the start of the list" }; insertItem.Click += (s, e) => { var i = control.SelectedItems.First() as MyGridItem; if (i != null) items.Insert(0, new MyGridItem(new Random(), 0, null)); }; menu.Items.Add(insertItem); control.ContextMenu = menu; return control; }
void CreateMenuToolBar() { var about = new Commands.About(); var quit = new Commands.Quit(); if (Platform.Supports<MenuBar>()) { var fileCommand = new Command { MenuText = "File Command", Shortcut = Application.Instance.CommonModifier | Keys.F }; fileCommand.Executed += (sender, e) => Log.Write(sender, "Executed"); var editCommand = new Command { MenuText = "Edit Command", Shortcut = Keys.Shift | Keys.E }; editCommand.Executed += (sender, e) => Log.Write(sender, "Executed"); var viewCommand = new Command { MenuText = "View Command", Shortcut = Keys.Control | Keys.V }; viewCommand.Executed += (sender, e) => Log.Write(sender, "Executed"); var windowCommand = new Command { MenuText = "Window Command" }; windowCommand.Executed += (sender, e) => Log.Write(sender, "Executed"); var file = new ButtonMenuItem { Text = "&File", Items = { fileCommand } }; var edit = new ButtonMenuItem { Text = "&Edit", Items = { editCommand } }; var view = new ButtonMenuItem { Text = "&View", Items = { viewCommand } }; var window = new ButtonMenuItem { Text = "&Window", Order = 1000, Items = { windowCommand } }; if (Platform.Supports<CheckMenuItem>()) { edit.Items.AddSeparator(); var checkMenuItem1 = new CheckMenuItem { Text = "Check Menu Item", Shortcut = Keys.Shift | Keys.K }; checkMenuItem1.Click += (sender, e) => Log.Write(checkMenuItem1, "Click, {0}, Checked: {1}", checkMenuItem1.Text, checkMenuItem1.Checked); checkMenuItem1.CheckedChanged += (sender, e) => Log.Write(checkMenuItem1, "CheckedChanged, {0}: {1}", checkMenuItem1.Text, checkMenuItem1.Checked); edit.Items.Add(checkMenuItem1); var checkMenuItem2 = new CheckMenuItem { Text = "Initially Checked Menu Item", Checked = true }; checkMenuItem2.Click += (sender, e) => Log.Write(checkMenuItem2, "Click, {0}, Checked: {1}", checkMenuItem2.Text, checkMenuItem2.Checked); checkMenuItem2.CheckedChanged += (sender, e) => Log.Write(checkMenuItem2, "CheckedChanged, {0}: {1}", checkMenuItem2.Text, checkMenuItem2.Checked); edit.Items.Add(checkMenuItem2); } if (Platform.Supports<RadioMenuItem>()) { edit.Items.AddSeparator(); RadioMenuItem controller = null; for (int i = 0; i < 5; i++) { var radio = new RadioMenuItem(controller) { Text = "Radio Menu Item " + (i + 1) }; radio.Click += (sender, e) => Log.Write(radio, "Click, {0}, Checked: {1}", radio.Text, radio.Checked); radio.CheckedChanged += (sender, e) => Log.Write(radio, "CheckedChanged, {0}: {1}", radio.Text, radio.Checked); edit.Items.Add(radio); if (controller == null) { radio.Checked = true; // check the first item initially controller = radio; } } } Menu = new MenuBar { Items = { // custom top-level menu items file, edit, view, window }, ApplicationItems = { // custom menu items for the application menu (Application on OS X, File on others) new Command { MenuText = "Application command" }, new ButtonMenuItem { Text = "Application menu item" } }, HelpItems = { new Command { MenuText = "Help Command" } }, QuitItem = quit, AboutItem = about }; } if (Platform.Supports<ToolBar>()) { // create and set the toolbar ToolBar = new ToolBar(); ToolBar.Items.Add(about); if (Platform.Supports<CheckToolItem>()) { ToolBar.Items.Add(new SeparatorToolItem { Type = SeparatorToolItemType.Divider }); ToolBar.Items.Add(new CheckToolItem { Text = "Check", Image = TestIcons.TestImage }); } if (Platform.Supports<RadioToolItem>()) { ToolBar.Items.Add(new SeparatorToolItem { Type = SeparatorToolItemType.FlexibleSpace }); ToolBar.Items.Add(new RadioToolItem { Text = "Radio1", Image = TestIcons.TestIcon, Checked = true }); ToolBar.Items.Add(new RadioToolItem { Text = "Radio2", Image = TestIcons.TestImage }); }; } }
static Control TextReplacementsDropDown(TextArea text) { var control = new Button { Text = "TextReplacements" }; control.Click += (sender, e) => { var replacements = text.TextReplacements; var supported = text.SupportedTextReplacements; var contextMenu = new ContextMenu(); foreach (var val in Enum.GetValues(typeof(TextReplacements)).OfType<TextReplacements>()) { if (val == TextReplacements.All || val == TextReplacements.None) { var item = new ButtonMenuItem { Text = val.ToString() }; item.Click += (sender2, e2) => text.TextReplacements = val; contextMenu.Items.Add(item); continue; } if (!supported.HasFlag(val)) continue; var checkItem = new CheckMenuItem { Text = val.ToString(), Checked = replacements.HasFlag(val) }; checkItem.CheckedChanged += (sender2, e2) => { var rep = text.TextReplacements; if (checkItem.Checked) rep |= val; else rep &= ~val; text.TextReplacements = rep; }; contextMenu.Items.Add(checkItem); } contextMenu.Show(control); }; return control; }
Control ImagesAndMenu() { var control = new TreeGridView { Size = new Size(100, 150) }; control.Columns.Add(new GridColumn { DataCell = new ImageTextCell(0, 1), HeaderText = "Image and Text", AutoSize = true, Resizable = true, Editable = true }); control.Columns.Add(new GridColumn { DataCell = new TextBoxCell(2), HeaderText = "Text", AutoSize = true, Width = 150, Resizable = true, Editable = true }); #if DESKTOP var menu = new ContextMenu(); var item = new ButtonMenuItem{ Text = "Click Me!" }; item.Click += delegate { if (control.SelectedItem != null) Log.Write(item, "Click, Rows: {0}", control.SelectedItem); else Log.Write(item, "Click, no item selected"); }; menu.Items.Add(item); control.ContextMenu = menu; #endif control.DataStore = CreateComplexTreeItem(0, "", Image); LogEvents(control); return control; }
void Init() { //_buttonConnect _buttonConnect = new Button { Text = StrRes.GetString("StrConnect","Connect"), Image = Icons.ConnectIcon }; _buttonConnect.Click += ButtonConnect_Click; //_buttonDisconnect _buttonDisconnect = new Button { Text = StrRes.GetString("StrDisconnect","Disconnect"), Image = Icons.DisconnectIcon }; _buttonDisconnect.Click += _buttonDisconnect_Click; //_dropDownDbs _dropDownDbs = new DropDown {Width = 200}; //_buttonRunScript _buttonRunScript = new Button {Text = StrRes.GetString("StrExecute","Execute"), Image = Icons.RunScripIcon}; _buttonRunScript.Click += _buttonRunScript_Click; //_itemSaveAs _itemSaveAs = new ButtonMenuItem { Text = StrRes.GetString("StrSaveAs","SaveAs...") }; _itemSaveAs.Click += _itemSaveAs_Click; //_itemViewTable _itemViewTable = new ButtonMenuItem { Text = StrRes.GetString("StrViewTable","ViewTable") }; _itemViewTable.Click += _itemViewTable_Click; _itemViewTable.Enabled = false; //_itemCopyName _itemCopyName = new ButtonMenuItem { Text = StrRes.GetString("StrCopyName","CopyName") }; _itemCopyName.Click += _itemCopyName_Click; //_menuDbView _menuDbView = new ContextMenu(); _menuDbView.Items.Add(_itemCopyName); _menuDbView.Items.Add(_itemViewTable); //_menuResultView _menuResultView = new ContextMenu(); _menuResultView.Items.Add(_itemSaveAs); //_treeViewDbs _treeViewDbs = new TreeView(); _treeViewDbs.ContextMenu = _menuDbView; _treeViewDbs.SelectionChanged += _treeViewDbs_SelectionChanged; _treeViewDbs.Activated += _treeViewDbs_Activated; _treeViewDbs.MouseUp += (sender, e) => { if (e.Buttons == MouseButtons.Alternate) { _treeViewDbs.ContextMenu.Show(_treeViewDbs); } }; //_textAreaSql _textAreaSql = new TextArea {Font = new Font(FontFamilies.Sans, 12, FontStyle.Bold | FontStyle.Italic)}; //_gridViewResult _gridViewResult = new GridView(); _gridViewResult.ContextMenu = _menuResultView; _gridViewResult.Style = "GridViewResult"; _gridViewResult.MouseUp += (sender, e) => { if (e.Buttons == MouseButtons.Alternate) { _gridViewResult.ContextMenu.Show(_treeViewDbs); } }; //topLayout var topLayout = new DynamicLayout(); topLayout.BeginHorizontal(); topLayout.AddCentered(_buttonConnect, horizontalCenter: false); topLayout.AddCentered(_buttonDisconnect, horizontalCenter: false); topLayout.AddCentered(_dropDownDbs, horizontalCenter: false); topLayout.AddCentered(_buttonRunScript, horizontalCenter: false); topLayout.Add(null); topLayout.EndVertical(); //rightPanel var rightPanel = new Splitter { Panel1 = _textAreaSql, Panel2 = _gridViewResult, Orientation = SplitterOrientation.Vertical, Position = 100 }; //mainLayout var mainLayout = new Splitter { Panel1 = _treeViewDbs, Panel2 = rightPanel, Orientation = SplitterOrientation.Horizontal, Position = 200 }; //layout var layout = new DynamicLayout { Padding = new Padding(0, 0), Spacing = new Size(5, 5) }; layout.AddRow(topLayout); layout.AddRow(mainLayout); Content = layout; }
void RenderMenu() { CommandExport = new Command(OnCommandExport) { MenuText = Desktop.Properties.Resources.MenuExport, Image = Utilities.LoadImage("Export"), Shortcut = Application.Instance.CommonModifier | Keys.E, Enabled = false }; CommandAccountUnlock = new Command(OnCommandAccountUnlock) { MenuText = Desktop.Properties.Resources.MenuUnlockAccount, Image = Utilities.LoadImage("Key") }; CommandAccountChangePassphrase = new Command(OnCommandAccountChangePassphrase) { MenuText = Desktop.Properties.Resources.MenuChangeAccountPassphrase, Image = Utilities.LoadImage("Key"), Enabled = false }; var commandAccountBackupManager = new Command(OnCommandAccountBackupManager) { MenuText = Desktop.Properties.Resources.MenuBackupManager, Image = Utilities.LoadImage("Save"), Enabled = false }; var commandExit = new Command(OnCommandExit) { MenuText = Desktop.Properties.Resources.MenuExit, Image = Utilities.LoadImage("Exit"), Shortcut = Application.Instance.CommonModifier | Keys.Q }; var commandShowWindowOptions = new Command(OnCommandShowWindowOptions) { MenuText = Desktop.Properties.Resources.MenuOptions, Image = Utilities.LoadImage("Options"), Shortcut = Application.Instance.CommonModifier | Keys.O }; var commandShowWindowAbout = new Command(OnCommandShowWindowAbout) { MenuText = Desktop.Properties.Resources.MenuAbout, Image = Utilities.LoadImage("Information"), }; var menuFile = new ButtonMenuItem { Text = Desktop.Properties.Resources.MenuFile, Items = { commandAccountBackupManager, CommandExport, new SeparatorMenuItem(), commandExit } }; MenuSettings = new ButtonMenuItem { Text = Desktop.Properties.Resources.MenuSettings, Items = { CommandAccountUnlock, new SeparatorMenuItem(), commandShowWindowOptions } }; var menuHelp = new ButtonMenuItem { Text = Desktop.Properties.Resources.MenuHelp, Items = { commandShowWindowAbout } }; Menu = new MenuBar( menuFile, MenuSettings, menuHelp ); }
/// <summary> /// /// </summary> private void InitializeMenu() { #region File var newCommand = new Command() { MenuText = "&New", Shortcut = Application.Instance.CommonModifier | Keys.N }; newCommand.Executed += (s, e) => { _context.Commands.NewCommand.Execute(null); if (_context.Invalidate != null) { _context.Invalidate(); } }; var openCommand = new Command() { MenuText = "&Open...", Shortcut = Application.Instance.CommonModifier | Keys.O }; openCommand.Executed += (s, e) => { var dlg = new OpenFileDialog(); dlg.Filters.Add(new FileDialogFilter("Project", ".project")); dlg.Filters.Add(new FileDialogFilter("All", ".*")); var result = dlg.ShowDialog(this); if (result == DialogResult.Ok) { _context.Open(dlg.FileName); if (_context.Invalidate != null) { _context.Invalidate(); } } }; var saveAsCommand = new Command() { MenuText = "Save &As...", Shortcut = Application.Instance.CommonModifier | Keys.S }; saveAsCommand.Executed += (s, e) => { var dlg = new SaveFileDialog(); dlg.Filters.Add(new FileDialogFilter("Project", ".project")); dlg.Filters.Add(new FileDialogFilter("All", ".*")); dlg.FileName = _context.Editor.Project.Name; var result = dlg.ShowDialog(this); if (result == DialogResult.Ok) { _context.Save(dlg.FileName); } }; var exportCommand = new Command() { MenuText = "&Export...", Shortcut = Application.Instance.CommonModifier | Keys.E }; exportCommand.Executed += (s, e) => { var dlg = new SaveFileDialog(); dlg.Filters.Add(new FileDialogFilter("Pdf", ".pdf")); dlg.Filters.Add(new FileDialogFilter("Dxf", ".dxf")); dlg.Filters.Add(new FileDialogFilter("All", ".*")); dlg.FileName = _context.Editor.Project.Name; var result = dlg.ShowDialog(this); if (result == DialogResult.Ok) { string path = dlg.FileName; int filterIndex = dlg.CurrentFilterIndex; switch (filterIndex) { case 0: _context.ExportAsPdf(path, _context.Editor.Project); Process.Start(path); break; case 1: _context.ExportAsDxf(path); Process.Start(path); break; default: break; } } }; var exitCommand = new Command() { MenuText = "E&xit", Shortcut = Application.Instance.AlternateModifier | Keys.F4 }; exitCommand.Executed += (s, e) => { Application.Instance.Quit(); }; #endregion #region Tool var noneTool = new Command() { MenuText = "&None", Shortcut = Keys.N }; noneTool.Executed += (s, e) => { _context.Commands.ToolNoneCommand.Execute(null); }; var selectionTool = new Command() { MenuText = "&Selection", Shortcut = Keys.S }; selectionTool.Executed += (s, e) => { _context.Commands.ToolSelectionCommand.Execute(null); }; var pointTool = new Command() { MenuText = "&Point", Shortcut = Keys.P }; pointTool.Executed += (s, e) => { _context.Commands.ToolPointCommand.Execute(null); }; var lineTool = new Command() { MenuText = "&Line", Shortcut = Keys.L }; lineTool.Executed += (s, e) => { _context.Commands.ToolLineCommand.Execute(null); }; var arcTool = new Command() { MenuText = "&Arc", Shortcut = Keys.A }; arcTool.Executed += (s, e) => { _context.Commands.ToolArcCommand.Execute(null); }; var bezierTool = new Command() { MenuText = "&Bezier", Shortcut = Keys.B }; bezierTool.Executed += (s, e) => { _context.Commands.ToolBezierCommand.Execute(null); }; var qbezierTool = new Command() { MenuText = "&QBezier", Shortcut = Keys.Q }; qbezierTool.Executed += (s, e) => { _context.Commands.ToolQBezierCommand.Execute(null); }; var pathTool = new Command() { MenuText = "Pat&h", Shortcut = Keys.H }; pathTool.Executed += (s, e) => { _context.Commands.ToolPathCommand.Execute(null); }; var rectangleTool = new Command() { MenuText = "&Rectangle", Shortcut = Keys.R }; rectangleTool.Executed += (s, e) => { _context.Commands.ToolRectangleCommand.Execute(null); }; var ellipseTool = new Command() { MenuText = "&Ellipse", Shortcut = Keys.E }; ellipseTool.Executed += (s, e) => { _context.Commands.ToolEllipseCommand.Execute(null); }; var textTool = new Command() { MenuText = "&Text", Shortcut = Keys.T }; textTool.Executed += (s, e) => { _context.Commands.ToolTextCommand.Execute(null); }; var imageTool = new Command() { MenuText = "&Image", Shortcut = Keys.I }; imageTool.Executed += (s, e) => { _context.Commands.ToolImageCommand.Execute(null); }; #endregion #region Edit var undoCommand = new Command() { MenuText = "&Undo", Shortcut = Application.Instance.CommonModifier | Keys.Z }; undoCommand.Executed += (s, e) => { _context.Commands.UndoCommand.Execute(null); }; var redoCommand = new Command() { MenuText = "&Redo", Shortcut = Application.Instance.CommonModifier | Keys.Y }; redoCommand.Executed += (s, e) => { _context.Commands.RedoCommand.Execute(null); }; var cutCommand = new Command() { MenuText = "Cu&t", Shortcut = Application.Instance.CommonModifier | Keys.X }; cutCommand.Executed += (s, e) => { _context.Commands.CutCommand.Execute(null); }; var copyCommand = new Command() { MenuText = "&Copy", Shortcut = Application.Instance.CommonModifier | Keys.C }; copyCommand.Executed += (s, e) => { _context.Commands.CopyCommand.Execute(null); }; var pasteCommand = new Command() { MenuText = "&Paste", Shortcut = Application.Instance.CommonModifier | Keys.V }; pasteCommand.Executed += (s, e) => { _context.Commands.PasteCommand.Execute(null); }; var deleteCommand = new Command() { MenuText = "&Delete", Shortcut = Keys.Delete }; deleteCommand.Executed += (s, e) => { _context.Commands.DeleteCommand.Execute(null); }; var selectAllCommand = new Command() { MenuText = "Select &All", Shortcut = Application.Instance.CommonModifier | Keys.A }; selectAllCommand.Executed += (s, e) => { _context.Commands.SelectAllCommand.Execute(null); }; var deSelectAllCommand = new Command() { MenuText = "De&select All", Shortcut = Keys.Escape }; deSelectAllCommand.Executed += (s, e) => { _context.Commands.DeselectAllCommand.Execute(null); }; var clearAllCommand = new Command() { MenuText = "Cl&ear All" }; clearAllCommand.Executed += (s, e) => { _context.Commands.ClearAllCommand.Execute(null); }; var groupCommand = new Command() { MenuText = "&Group", Shortcut = Application.Instance.CommonModifier | Keys.G }; groupCommand.Executed += (s, e) => { _context.Commands.GroupCommand.Execute(null); }; var ungroupCommand = new Command() { MenuText = "U&ngroup", Shortcut = Application.Instance.CommonModifier | Keys.U }; ungroupCommand.Executed += (s, e) => { _context.Commands.UngroupCommand.Execute(null); }; #endregion #region Menu var fileMenu = new ButtonMenuItem() { Text = "&File", Items = { newCommand, new SeparatorMenuItem(), openCommand, new SeparatorMenuItem(), saveAsCommand, new SeparatorMenuItem(), exportCommand } }; var editMenu = new ButtonMenuItem() { Text = "&Edit", Items = { undoCommand, redoCommand, new SeparatorMenuItem(), cutCommand, copyCommand, pasteCommand, deleteCommand, new SeparatorMenuItem(), selectAllCommand, deSelectAllCommand, new SeparatorMenuItem(), clearAllCommand, new SeparatorMenuItem(), groupCommand, ungroupCommand } }; var toolMenu = new ButtonMenuItem() { Text = "&Tool", Items = { noneTool, new SeparatorMenuItem(), selectionTool, new SeparatorMenuItem(), pointTool, new SeparatorMenuItem(), lineTool, arcTool, bezierTool, qbezierTool, new SeparatorMenuItem(), pathTool, new SeparatorMenuItem(), rectangleTool, ellipseTool, new SeparatorMenuItem(), textTool, new SeparatorMenuItem(), imageTool } }; var aboutCommand = new Command() { MenuText = "&About..." }; aboutCommand.Executed += (s, e) => { MessageBox.Show(this, Platform.ID); }; Menu = new MenuBar { Items = { fileMenu, editMenu, toolMenu }, QuitItem = exitCommand, AboutItem = aboutCommand }; #endregion }
private ButtonMenuItem LoadPluginsInUi(IPlugin plugin, bool isRoot) { var item = new ButtonMenuItem(); var title = plugin.PluginInfo.Name; item.ID = title; item.Text = title; item.Order = plugin.PluginSetting.IndexInList; // 如果是插件,添加Run按钮 if (isRoot) { var pluginRun = new Command() { ID = "Show", MenuText = "Show " + title, Tag = plugin, }; pluginRun.Executed += pluginRun_Click; item.Items.Add(pluginRun); } // 添加子插件按钮 var childs = PluginProvider.GetChildPlugins(plugin); if (childs.Any()) { item.Items.AddSeparator(80000 - 1); var pluginChild = new ButtonMenuItem() { ID = "Childs", Text = "Child Plugins", Order = 80000 }; foreach (var c in childs) { pluginChild.Items.Add(LoadPluginsInUi(c, false)); } item.Items.Add(pluginChild); } // 添加分隔符 item.Items.AddSeparator(90000 - 1); // 添加About按钮 var pluginAbout = new Command() { ID = "About", MenuText = "About", Tag = plugin }; pluginAbout.Executed += pluginAbout_Click; pluginAbout.Tag = plugin; item.Items.Add(pluginAbout, 90000); return item; }