public void TabContextMenuOpen(object sender, MouseButtonEventArgs e) { var ctxm = new ContextMenuEx { IsOpen = true }; e.Handled = true; var menu = new MenuItem { Header = "自動登録画面の画面設定(_O)..." }; menu.Click += (s2, e2) => CommonManager.MainWindow.OpenSettingDialog(SettingWindow.SettingMode.ReserveSetting); ctxm.Items.Add(menu); //非表示の時は設定画面のみ if (this.IsVisible == false) { return; } ctxm.Items.Add(new Separator()); menu = new MenuItem { Header = "並びを保存する(_S)", IsEnabled = dragMover.NotSaved, InputGestureText = MenuBinds.GetInputGestureText(EpgCmds.SaveOrder) }; menu.Click += (s2, e2) => EpgCmds.SaveOrder.Execute(null, dragMover); ctxm.Items.Add(menu); menu = new MenuItem { Header = "並びを元に戻す(_Z)", IsEnabled = dragMover.NotSaved, InputGestureText = MenuBinds.GetInputGestureText(EpgCmds.RestoreOrder) }; menu.Click += (s2, e2) => EpgCmds.RestoreOrder.Execute(null, dragMover); ctxm.Items.Add(menu); }
private void button_MouseRightButtonUp(object sender, MouseButtonEventArgs e) { var btn = sender as Button; var menuCustom1 = new MenuItem { Header = "カスタム色をコンボボックスの選択色で有効化" }; var menuCustom2 = new MenuItem { Header = "カスタム色をコンボボックスの選択色で有効化(透過度保持)" }; var menuReset = new MenuItem { Header = "カスタム色をリセット" }; var menuSelect = new MenuItem { Header = "コンボボックスから現在のカスタム色に近い色を選択" }; var pnl = btn.Parent as Panel; var cmb = pnl == null ? null : pnl.Children.OfType <ComboBox>().FirstOrDefault(item => item.Tag as string == btn.Tag as string); if (cmb == null) { return; //無いはずだけど保険 } menuCustom1.IsEnabled = cmb.SelectedItem != null && cmb.SelectedIndex != cmb.Items.Count - 1; menuCustom2.IsEnabled = menuCustom1.IsEnabled; menuReset.Click += (sender2, e2) => btn.Background = new SolidColorBrush(Colors.White); var SetColor = new Action <bool>(keepA => { var cmbColor = (Color)cmb.SelectedValue; if (keepA) { cmbColor.A = ((SolidColorBrush)btn.Background).Color.A; } btn.Background = new SolidColorBrush(cmbColor); cmb.SelectedIndex = cmb.Items.Count - 1; }); menuCustom1.Click += (sender2, e2) => SetColor(false); menuCustom2.Click += (sender2, e2) => SetColor(true); menuSelect.Click += (sender2, e2) => ColorSetWindow.SelectNearColor(cmb, ((SolidColorBrush)btn.Background).Color); ContextMenu ctxm = new ContextMenuEx(); ctxm.Items.Add(menuCustom1); ctxm.Items.Add(menuCustom2); ctxm.Items.Add(menuReset); ctxm.Items.Add(menuSelect); ctxm.IsOpen = true; }
/// <summary> /// 创建右键菜单 /// </summary> /// <returns></returns> private void createContextMenu() { Style winxmenu = Current.Resources["WinXTaskBarContextMenuItemStyle"] as Style; _cmenu = new ContextMenuEx { Style = Current.Resources["WinXTaskBarContextMenuStyle"] as Style }; MenuItemEx exit = new MenuItemEx { Style = winxmenu, LabelString = "退出", Command = MainVM.Singleton.Operation, CommandParameter = "CMD_EXIT" }; MenuItemEx about = new MenuItemEx { Style = winxmenu, LabelString = "关于", Command = MainVM.Singleton.Operation, CommandParameter = "CMD_ABOUT" }; _cmenu.Items.Add(about); _cmenu.Items.Add(exit); }
private void listBox_serviceView_ContextMenu_Set() { // 右クリックメニューにSIDのソートを登録 var cm = new ContextMenuEx(); var menuItemAsc = new MenuItem(); menuItemAsc.Header = "サブチャンネルの結合表示を解除"; menuItemAsc.ToolTip = "同一TSIDのサービスの結合表示が解除されるようServiceIDを昇順に並び替えます"; menuItemAsc.Tag = 0; cm.Items.Insert(0, menuItemAsc); var menuItemDesc = new MenuItem(); menuItemDesc.Header = "サブチャンネルを番組表で結合表示"; menuItemDesc.ToolTip = "同一TSIDのサービスをServiceIDが逆順になるよう並べると番組表で結合表示される機能を使い、\r\nサブチャンネルを含めて1サービスの幅で表示します"; menuItemDesc.Tag = 1; cm.Items.Insert(0, menuItemDesc); foreach (MenuItem item in cm.Items) { item.Click += listBox_serviceView_SidSort; } listBox_serviceView.ContextMenu = cm; listBox_serviceView.ContextMenuOpening += listBox_serviceView_ContextMenu_Opening; listBox_serviceView.ContextMenuClosing += (s, e) => sortList = null; }
public ContextMenu CreateSlelectMenu(Func <S, bool> isMenuChecked = null, Func <S, bool> isMenuEnabled = null, RoutedEventHandler clicked = null) { var ctxm = new ContextMenuEx(); int i = 0; foreach (var item in Items) { var menu = new MenuItem() { Header = item.DeepClone(), Tag = i++ }; menu.Click += clicked ?? SelectMenuClicked; if (isMenuChecked != null) { menu.IsChecked = isMenuChecked(menu.Header as S); } if (isMenuEnabled != null) { menu.IsEnabled = isMenuEnabled(menu.Header as S); } ctxm.Items.Add(menu); } return(ctxm); }