Ejemplo n.º 1
0
 /// <summary>
 /// 添加子菜单
 /// </summary>
 /// <param name="_item">子菜单</param>
 public void AddItem(StrayFogRunningMenuItem _item)
 {
     if (!items.Contains(_item))
     {
         items.Add(_item);
     }
 }
    /// <summary>
    /// 添加菜单
    /// </summary>
    /// <param name="_itemName">菜单名称</param>
    /// <returns>返回菜单项</returns>
    public StrayFogRunningMenuItem AddMenuItem(string _itemName)
    {
        StrayFogRunningMenuItem item = null;

        string[] names = _itemName.Split(new string[2] {
            "/", @"\"
        }, StringSplitOptions.RemoveEmptyEntries);
        if (names != null && names.Length > 0)
        {
            string path       = string.Empty;
            int    guid       = 0;
            int    parentGuid = 0;
            for (int i = 0; i < names.Length; i++)
            {
                if (!string.IsNullOrEmpty(path))
                {
                    parentGuid = path.UniqueHashCode();
                }
                path = Path.Combine(path, names[i]);
                guid = path.UniqueHashCode();
                if (!mDicMenuItemMaping.ContainsKey(guid))
                {
                    item = new StrayFogRunningMenuItem(guid, path, names[i]);
                    mDicMenuItemMaping.Add(guid, item);
                    if (i == 0)
                    {//添加根菜单
                        items.Add(item);
                    }
                }
                item = mDicMenuItemMaping[guid];
                if (mDicMenuItemMaping.ContainsKey(parentGuid))
                {
                    mDicMenuItemMaping[parentGuid].AddItem(item);
                }
            }
        }
        return(item);
    }