/// <summary> /// 初始化图形上的所有系统菜单 /// </summary> /// <param name="contextMenu">弹出菜单或者菜单项</param> /// <param name="action">菜单消息处理过程</param> /// <param name="language">使用的语言</param> /// <param name="colorPanelTemplate">颜色菜单项template</param> /// <param name="colorControlTemplate">颜色菜单显示Template</param> public static void InitChartPopupMenu <T>(T contextMenu, System.Windows.RoutedEventHandler action, Common.EnumLanguage language, ItemsPanelTemplate colorPanelTemplate, ControlTemplate colorControlTemplate) where T : class { //选择移动菜单 MenuItem mainItem = AddOneItem(ChartMenuItems.Select, contextMenu, action, language); mainItem = AddOneItem(ChartMenuItems.Pan, contextMenu, action, language); //缩放菜单(放大,缩小,重置XY,重置Y) mainItem = AddOneItem(ChartMenuItems.Zoom, contextMenu, action, language); MenuItem subItem = AddOneItem(ChartMenuItems.zoomIn, mainItem, action, language); subItem = AddOneItem(ChartMenuItems.zoomOut, mainItem, action, language); subItem = AddOneItem(ChartMenuItems.resetXY, mainItem, action, language); subItem = AddOneItem(ChartMenuItems.resetY, mainItem, action, language); //显示菜单(颜色,信息,隐藏,网格) mainItem = AddOneItem(ChartMenuItems.Display, contextMenu, action, language); subItem = AddOneItem(ChartMenuItems.Colors, mainItem, action, language); //颜色列表菜单 subItem.ItemsPanel = colorPanelTemplate; foreach (var color in ChartCommonMethod.strColors) { AddSubColorMenu(subItem, color, action, colorControlTemplate); } subItem = AddOneItem(ChartMenuItems.showInformation, mainItem, action, language); subItem = AddOneItem(ChartMenuItems.Hide, mainItem, action, language); subItem = AddOneItem(ChartMenuItems.showGridLine, mainItem, action, language); //标注峰位主菜单(上峰位,下峰位) mainItem = AddOneItem(ChartMenuItems.peakPick, contextMenu, action, language); subItem = AddOneItem(ChartMenuItems.upPeakPick, mainItem, action, language); subItem = AddOneItem(ChartMenuItems.downPeakPick, mainItem, action, language); }
/// <summary> /// 在父菜单下添加一个菜单项 /// </summary> /// <typeparam name="T">ContextMenu或者MenuItem</typeparam> /// <param name="commandItem">菜单项</param> /// <param name="parentMenu">父菜单</param> /// <param name="action">菜单消息处理过程</param> /// <param name="language">使用的语言</param> /// <returns></returns> public static MenuItem AddOneItem <T>(ChartMenuItems commandItem, T parentMenu, System.Windows.RoutedEventHandler action, Common.EnumLanguage language) where T : class { MenuItem curmenu = new MenuItem(); curmenu.Name = commandItem.ToString(); curmenu.Header = Common.Extenstion.EnumExtensions.GetEnumDescription(commandItem, language); curmenu.Click += action; if (parentMenu is ContextMenu) { (parentMenu as ContextMenu).Items.Add(curmenu); } else if (parentMenu is MenuItem) { (parentMenu as MenuItem).Items.Add(curmenu); } return(curmenu); }