private static BaseMenuItem GetMenuByAction(string action, Collection <object> sourceMenus) { if (sourceMenus != null) { foreach (object item in sourceMenus) { if (item is CompositeMenuItem) { CompositeMenuItem compositeMenuItem = ((CompositeMenuItem)item); BaseMenuItem menu = GetMenuByAction(action, compositeMenuItem.Children); if (menu != null) { return(menu); } } else if (item is SingleMenuItem) { SingleMenuItem singleMenuItem = ((SingleMenuItem)item); if (string.Compare(singleMenuItem.Action, action, StringComparison.InvariantCultureIgnoreCase) == 0) { return(singleMenuItem); } } } } return(null); }
//private void overlay_Drawing(object sender, DrawingOverlayEventArgs e) //{ // if (IsHydrographyLayerVisiable()) // { // IsOnLoading = true; // } //} //private void overlay_Drawn(object sender, DrawnOverlayEventArgs e) //{ // IsOnLoading = false; //} private void SetToolbarMenuItems() { areaDrawingModes = GetMenusByGroupName("s52areadrawingmode", menuItems); foreach (BaseMenuItem menuItem in areaDrawingModes) { menuItem.PropertyChanged += MenuItem_PropertyChanged; } SelectedAreaDrawingMode = areaDrawingModes.FirstOrDefault(p => p.IsChecked); colorSchemas = GetMenusByGroupName("colorschema", menuItems); foreach (BaseMenuItem menuItem in colorSchemas) { menuItem.PropertyChanged += MenuItem_PropertyChanged; } SelectedColorSchema = colorSchemas.FirstOrDefault(p => p.IsChecked); pointDrawingModes = GetMenusByGroupName("s52pointdrawingmode", menuItems); foreach (BaseMenuItem menuItem in pointDrawingModes) { menuItem.PropertyChanged += MenuItem_PropertyChanged; } SelectedPointDrawingMode = pointDrawingModes.FirstOrDefault(p => p.IsChecked); baseMaps = GetMenusByGroupName("showworldmap", menuItems); foreach (BaseMenuItem menuItem in baseMaps) { menuItem.PropertyChanged += MenuItem_PropertyChanged; } SelectedBaseMap = baseMaps.FirstOrDefault(m => m.IsChecked); displayCategorys = GetMenusByGroupName("displaycategory", menuItems); foreach (BaseMenuItem menuItem in displayCategorys) { menuItem.PropertyChanged += MenuItem_PropertyChanged; } SelectedDisplayCategory = displayCategorys.FirstOrDefault(m => m.IsChecked); symbolLabels = GetMenusByGroupName("textlabel", menuItems); foreach (BaseMenuItem menuItem in symbolLabels) { menuItem.PropertyChanged += MenuItem_PropertyChanged; } SelectedSymbolLabel = symbolLabels.FirstOrDefault(p => p.IsChecked); showingGradicule = GetMenuByAction("graticule", menuItems); showLights = GetMenuByAction("lights", menuItems); showContourText = GetMenuByAction("contourlabel", menuItems); showSoundingText = GetMenuByAction("soundinglabel", menuItems); showLightDescriptions = GetMenuByAction("lightdescription", menuItems); }
private void SwitchCheckedState(BaseMenuItem menuItem, IEnumerable <object> menuItems) { if (menuItems != null) { IEnumerator <object> enumerator = menuItems.GetEnumerator(); while (enumerator.MoveNext()) { object current = enumerator.Current; if (current is SingleMenuItem) { SingleMenuItem singleMenuItem = (SingleMenuItem)current; if (singleMenuItem.GroupName == menuItem.GroupName && singleMenuItem.IsCheckable && !singleMenuItem.CanToggle) { singleMenuItem.IsChecked = singleMenuItem == menuItem; } } } } }
private void MenuItem_PropertyChanged(object sender, PropertyChangedEventArgs e) { if (string.Compare(e.PropertyName, "IsChecked", StringComparison.InvariantCultureIgnoreCase) == 0) { BaseMenuItem menuItem = sender as BaseMenuItem; if (menuItem.IsChecked) { canHandleExecute = false; switch (menuItem.GroupName.ToLowerInvariant()) { case "s52areadrawingmode": SelectedAreaDrawingMode = menuItem; break; case "colorschema": SelectedColorSchema = menuItem; break; case "s52pointdrawingmode": SelectedPointDrawingMode = menuItem; break; case "showworldmap": SelectedBaseMap = menuItem; break; case "displaycategory": SelectedDisplayCategory = menuItem; break; case "textlabel": SelectedSymbolLabel = menuItem; break; } canHandleExecute = true; } } }
public MenuItemMessage(BaseMenuItem menuItem) { MenuItem = menuItem; }