Esempio n. 1
0
        /// <summary>
        /// Ribbon Initial 初始化Ribbon界面
        /// </summary>
        public void RibbonInitial()
        {
            RibbonContainer.ApplicationMenu = menu;

            #region 添加Pad到ApplicationMenu-View中
            RibbonApplicationMenuItem viewItem = new RibbonApplicationMenuItem();
            viewItem.Header = StringParser.Parse("${res:Ribbon.ApplicationMenu.View}");
            viewItem.Name   = "View";
            RibbonContainer.ApplicationMenu.Items.Add(viewItem);

            foreach (PadDescriptor content in AddInTree.BuildItems <PadDescriptor>(padsPath, this, false))
            {
                if (content != null)
                {
                    ShowPad(content);
                    viewItem.Items.Add(new PadToRibbon(content));
                }
            }

            #endregion

            #region 界面样式
            RibbonApplicationMenuItem styleItem = new RibbonApplicationMenuItem();
            styleItem.Header = StringParser.Parse("${res:Ribbon.ApplicationMenu.Themes}");
            styleItem.Name   = "Theme";
            RibbonContainer.ApplicationMenu.Items.Add(styleItem);
            #endregion

            RibbonService.AddItemsToRibbon(RibbonContainer, this, ribbonPath);
        }
        // The above mentioned solution for Dev10 bug# 908460 needed another supporting change.
        // The base class for RibbonApplicationMenu viz. MenuBase woudn't wait for the
        // CloseSubmenuTimer to elapse but instead forcibly closed the first Popup as soon as
        // the second one was about to show. And this happened when the IsSubmenuOpen property
        // on the first Popup was being turned off. So in order to counter this behavior, we
        // now coerce the IsSubenuOpen property for top level RibbonApplicationMenuItems and
        // RibbonApplicationSplitMenuItems whenever the timer is running and the current
        // selection has moved to another MenuItem with a submenu.

        private static object CoerceIsSubmenuOpen(DependencyObject d, object baseValue)
        {
            RibbonApplicationMenuItem menuItem = (RibbonApplicationMenuItem)d;

            if (menuItem.Level == RibbonApplicationMenuItemLevel.Top)
            {
                return(RibbonHelper.CoerceIsSubmenuOpenForTopLevelItem(menuItem, menuItem.ParentItemsControl, (bool)baseValue));
            }

            return(baseValue);
        }
Esempio n. 3
0
        private void RibbonApplicationMenuItem_Click(object sender, RoutedEventArgs e)
        {
            RibbonApplicationMenuItem item = e.Source as RibbonApplicationMenuItem;
            string header = item.Header.ToString();

            if (header == "退出")
            {
                App.Current.Shutdown();
            }
            else
            {
                p.OnAppMenuItemSelected(header);
            }
        }
Esempio n. 4
0
        private void RibbonApplicationMenuItem_Click(object sender, RoutedEventArgs e)
        {
            RibbonApplicationMenuItem item = e.Source as RibbonApplicationMenuItem;
            string name = item.Header.ToString();

            if (name == "退出")
            {
                Application.Current.Shutdown();
            }
            else
            {
                p2.OnAppMenuItemClick(name);
            }
        }
Esempio n. 5
0
 public UcLogin(Bizz bizz, RibbonTab tabOffer, RibbonTab tabAdministration, RibbonGroup information, RibbonGroup helpData, RibbonApplicationMenuItem menuitemChangePassWord, RibbonApplicationMenuItem menuItemLogOut, TextBlock userName, UserControl ucLeft, UserControl ucRight)
 {
     InitializeComponent();
     this.Bizz                   = bizz;
     this.TabOffer               = tabOffer;
     this.TabAdministration      = tabAdministration;
     this.HelpData               = helpData;
     this.Information            = information;
     this.MenuItemChangePassWord = menuitemChangePassWord;
     this.MenuItemLogOut         = menuItemLogOut;
     this.UserName               = userName;
     this.UcLeft                 = ucLeft;
     this.UcRight                = ucRight;
 }
Esempio n. 6
0
 public UcLogin(Bizz cbz, RibbonTab tabOffer, RibbonTab tabNews, RibbonTab tabMaintenance, RibbonTab tabAdministration, RibbonGroup data, RibbonGroup users, RibbonApplicationMenuItem buttonChangePassWord, RibbonApplicationMenuItem buttonLogOut, Label userName, UserControl ucMain)
 {
     InitializeComponent();
     this.CBZ                  = cbz;
     this.TabOffer             = tabOffer;
     this.TabNews              = tabNews;
     this.TabMaintenance       = tabMaintenance;
     this.TabAdministration    = tabAdministration;
     this.Data                 = data;
     this.Users                = users;
     this.ButtonChangePassWord = buttonChangePassWord;
     this.ButtonLogOut         = buttonLogOut;
     this.UserName             = userName;
     this.UcMain               = ucMain;
 }
Esempio n. 7
0
        /// <summary>
        /// Adds a new menu item to the menu stack.
        /// </summary>
        /// <param name="group">The group that this item is part of. Groups are separated by menu separators.</param>
        /// <param name="weight">THe bigger the weight, the lower it gets in the group.</param>
        /// <param name="menuItem">The menu item to be added.</param>
        public void AddMenuItem(string group, int weight, RibbonApplicationMenuItem menuItem)
        {
            if (menuGroups.ContainsKey(group))
            {
                menuGroups[group].Add(menuItem);
            }
            else
            {
                IList <RibbonApplicationMenuItem> items = new List <RibbonApplicationMenuItem>();
                items.Add(menuItem);
                menuGroups.Add(group, items);
            }

            RefreshMenu();
        }
Esempio n. 8
0
        /// <summary>
        /// Method, that checks credentials
        /// </summary>
        /// <param name="bizz">Bizz</param>
        /// <param name="userName">TextBlock</param>
        /// <param name="menuItemChangePassWord">RibbonApplicationMenuItem</param>
        /// <param name="menuItemLogOut">RibbonApplicationMenuItem</param>
        /// <param name="initials">string</param>
        /// <param name="passWord">string</param>
        /// <returns>bool</returns>
        public bool CheckCredentials(Bizz bizz, TextBlock userName, RibbonApplicationMenuItem menuItemChangePassWord, RibbonApplicationMenuItem menuItemLogOut, string initials, string passWord)
        {
            foreach (User user in Users)
            {
                if (user.Initials == initials && user.PassWord == passWord)
                {
                    bizz.CurrentUser = user;
                    userName.Text    = user.Name;
                    menuItemChangePassWord.IsEnabled = true;
                    menuItemLogOut.IsEnabled         = true;
                    return(true);
                }
            }

            return(false);
        }
Esempio n. 9
0
        public Menu()
        {
            _conn = new RepositoryInjection().GetClass <IFactoryConnection>();

            InitializeComponent();
            //var catalog = new AggregateCatalog(new AssemblyCatalog(Assembly.GetExecutingAssembly()), new DirectoryCatalog("."));
            //var container = new CompositionContainer(catalog);
            //container.ComposeParts(this);

            //foreach (var plugin in Modules)
            //{
            //    //plugin.SetGrid(((FMain)Tag).GridSearch);
            //    foreach (var item in plugin.ItemsCollection())
            //    {
            //        this.Items().Add(item);
            //    }
            //}

            if (GlobalUser.User == null)
            {
                return;
            }

            MenuPaindelControle.Visibility = GlobalUser.User.IsAdministrator ? Visibility.Visible : Visibility.Collapsed;

            //ModuleEstacionamento.Visibility = Visibility.Collapsed;

            var companies = new CompanyApp(_conn).Search(c => GlobalUser.User.AccessAllCompanies || c.UsersCompanies.Any(d => d.UserId == GlobalUser.User.Id));

            foreach (var item in companies)
            {
                var itemMenu = new RibbonApplicationMenuItem()
                {
                    Header = string.Format("{0} - {1}", item.Id, item.CorporateName), Tag = item
                };
                itemMenu.Click += MenuItemCompanies_Click;
                ListCompanies.Items.Add(
                    itemMenu
                    );
            }
        }
Esempio n. 10
0
        /// <summary>
        /// Method, that checks credentials
        /// </summary>
        /// <param name="userName">TextBlock</param>
        /// <param name="menuItemChangePassWord">RibbonApplicationMenuItem</param>
        /// <param name="menuItemLogOut">RibbonApplicationMenuItem</param>
        /// <param name="initials">string</param>
        /// <param name="passWord">string</param>
        /// <returns>bool</returns>
        public bool CheckCredentials(Label userName, RibbonApplicationMenuItem menuItemChangePassWord, RibbonApplicationMenuItem menuItemLogOut, string initials, string passWord)
        {
            bool result = false;

            RefreshList("Users");
            if (CheckLogin(initials, passWord))
            {
                foreach (User user in Users)
                {
                    if (user.Initials == initials && user.UserLevel.Id >= 1)
                    {
                        CurrentUser      = user;
                        userName.Content = user.Person.Name;
                        menuItemChangePassWord.IsEnabled = true;
                        menuItemLogOut.IsEnabled         = true;
                        result = true;
                        break;
                    }
                }
            }
            return(result);
        }
Esempio n. 11
0
        public void UpdateLastFilesMenus()
        {
            Dispatcher.Invoke(new Action(() =>
            {
                Button_Open.Items.Clear();

                // Add default file open button
                var mi          = new RibbonApplicationMenuItem();
                mi.Header       = "File/Project";
                mi.ToolTipTitle = "Open File (Ctrl+O)";
                mi.ImageSource  = new System.Windows.Media.Imaging.BitmapImage(new Uri("Resources/OpenPH.png", UriKind.Relative));
                mi.Click       += Open;
                Button_Open.Items.Add(mi);

                // Add recent files
                if (GlobalProperties.Instance.LastFiles.Count > 0 || GlobalProperties.Instance.LastProjects.Count > 0)
                {
                    Button_Open.Items.Add(new RibbonSeparator());
                }

                foreach (var i in GlobalProperties.Instance.LastFiles)
                {
                    Button_Open.Items.Add(new LastFileItem(i, false));
                }

                // Then add recent projects
                if (GlobalProperties.Instance.LastFiles.Count > 0 && GlobalProperties.Instance.LastProjects.Count > 0)
                {
                    Button_Open.Items.Add(new RibbonSeparator());
                }

                foreach (var i in GlobalProperties.Instance.LastProjects)
                {
                    Button_Open.Items.Add(new LastFileItem(i, true));
                }

                StartPage.RefreshLastProjects();
            }));
        }
Esempio n. 12
0
        private static void InstallRibbonTab(Window ewI, string captionString, Microsoft.Office.Interop.Excel.Application eA)
        {
            dynamic a  = eA.ActiveSheet;
            Pane    aa = ewI.ActivePane;

            Microsoft.Office.Interop.Excel.Workbook b = eA.ActiveWorkbook;
            MenuBar c       = eA.ActiveMenuBar;
            String  Caption = ewI.Caption;

            Debug.WriteLine(String.Format("Window #		{0} ", ewI.WindowNumber));
            Debug.WriteLine(String.Format("Caption		{0} ", Caption));
            Debug.WriteLine(String.Format("Window State	{0} ", ewI.WindowState));
            Debug.WriteLine(String.Format("Names.Count  {0} ", eA.Names.Count));
            Ribbon uuu = eA.ActiveMenuBar as Ribbon;

            foreach (object n in eA.Names)
            {
                String nameString = n.ToString( );
                Debug.WriteLine(String.Format("Application.Name	{0} ", nameString));
            }
            Debug.WriteLine(String.Format("pane index	{0} ", aa.Index));
            Debug.WriteLine(String.Format("Menus Count	{0} ", c.Menus.Count));
            Menus ccc = c.Menus;

            foreach (object ra in ccc)
            {
                RibbonApplicationMenuItem dd = ra as RibbonApplicationMenuItem;
                String ddd = dd.ToolTipDescription;

                System.Diagnostics.Debug.WriteLine(String.Format("{0} {1} ", dd, (((System.Environment.StackTrace).Split('\n')) [2].Trim( ))));
            }
            var d = c.Menus;
            var e = d.Add("my Menu");
            var f = e.MenuItems.Add("my Menu Items Added");

            ewI.Activate( );
            aa.Activate( );
        }
        public static void LoadState(RibbonWindow ribbonWindow, Ribbon ribbon)
        {
            ribbon.IsMinimized = Settings.Current.RibbonIsMinimized;
            ribbon.ShowQuickAccessToolBarOnTop = Settings.Current.ShowQuickAccessToolBarOnTop;
            #region Load the QuickAccessToolbarButtonCollection
            try
            {
                if (!string.IsNullOrEmpty(Settings.Current.RibbonQuickAccessToolBar))
                {
                    QuickAccessToolbarButtonCollection buttons = null;

                    XmlSerializer bf = new XmlSerializer(typeof(QuickAccessToolbarButtonCollection));
                    using (StringReader sr = new StringReader(Settings.Current.RibbonQuickAccessToolBar))
                    {
                        buttons = (QuickAccessToolbarButtonCollection)bf.Deserialize(sr);
                    }

                    if (buttons != null)
                    {
                        foreach (QuickAccessToolbarButton qaButton in buttons)
                        {
                            RibbonButton ribbonElem = ribbonWindow.FindName(qaButton.Name) as RibbonButton;

                            RibbonButton rButton = new RibbonButton()
                            {
                                Label  = qaButton.Label,
                                KeyTip = qaButton.KeyTip,
                                //ToolTip = qaButton.ToolTip,
                                ToolTipDescription   = qaButton.ToolTipDescription,
                                QuickAccessToolBarId = qaButton.QuickAccessToolBarId,
                                Name = qaButton.Name
                            };

                            if (!string.IsNullOrEmpty(qaButton.LargeImageSource))
                            {
                                rButton.LargeImageSource = new BitmapImage(new Uri(qaButton.LargeImageSource));
                            }
                            if (!string.IsNullOrEmpty(qaButton.SmallImageSource))
                            {
                                rButton.SmallImageSource = new BitmapImage(new Uri(qaButton.SmallImageSource));
                            }

                            if (ribbonElem != null && ribbonElem.Command != null)
                            {
                                rButton.Command = ribbonElem.Command;
                            }
                            else
                            {
                                // Noch im Applicationmenü suchen
                                RibbonApplicationMenuItem ribbonMenuItem = ribbon.ApplicationMenu.FindName(qaButton.Name) as RibbonApplicationMenuItem;

                                if (ribbonMenuItem != null)
                                {
                                    rButton.Command = ribbonMenuItem.Command;
                                }
                            }
                            ribbon.QuickAccessToolBar.Items.Add(rButton);
                        }
                    }
                }
            }
            catch
            {
                // Ignorieren, falls die Toolbar nicht geladen werden kann.
            }
            #endregion
        }
Esempio n. 14
0
        /// <summary>
        /// Dựng menu ribbon của hệ thống theo user đăng nhập
        /// </summary>
        /// <param name="rbMenu">Control Menu ribbon được tham chiếu, xử lý rồi trả về</param>
        public void KhoiTaoMenu(ref Ribbon rbMenu)
        {
            try
            {
                string                   toolTip;
                ChucNangDto[]            ChucNanglst = ClientInformation.ListChucNang.Select(e => e).ToArray();
                IQueryable <ChucNangDto> sItem;
                string                   pathFolderImages = ApplicationConstant.defaultImageSource;
                // Lấy danh sách menu theo tên đăng nhập và mã đơn vị
                var sTab = ChucNanglst.Where(e => e.IDChucNangCha == 0).OrderBy(e => e.STT).ToList();
                foreach (var Tab in sTab)
                {
                    if (Tab.ThuocTinh.SplitByDelimiter("#")[2] == "RibbonApplicationMenu")
                    {   // Application menu
                        RibbonApplicationMenu ram = new RibbonApplicationMenu();
                        ram.Label = Utilities.Common.LLanguage.SearchResourceByKey(Tab.TieuDe);
                        if (!Tab.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace())
                        {
                            toolTip = Tab.ThuocTinh.SplitByDelimiter("#")[0];
                        }
                        else
                        {
                            toolTip = Tab.TieuDe;
                        }
                        ram.ToolTip = Utilities.Common.LLanguage.SearchResourceByKey(toolTip);
                        ram.KeyTip  = Tab.ThuocTinh.SplitByDelimiter("#")[3];
                        ram.Uid     = Tab.IDChucNang.ToString();
                        if (!Tab.BieuTuong.IsNullOrEmptyOrSpace())
                        {
                            try
                            {
                                BitmapImage bmp = new BitmapImage();
                                if (Tab.ThuocTinh.SplitByDelimiter("#")[1] == "Both")
                                {
                                    bmp.BeginInit();
                                    bmp.UriSource = new Uri(pathFolderImages + Tab.BieuTuong.SplitByDelimiter("#")[1], UriKind.RelativeOrAbsolute);
                                    bmp.EndInit();
                                    // RibbonMenuItem icon always small
                                    ram.SmallImageSource = bmp;
                                }
                                else
                                {   // Lagre or Small
                                    bmp.BeginInit();
                                    bmp.UriSource = new Uri(pathFolderImages + Tab.BieuTuong, UriKind.RelativeOrAbsolute);
                                    bmp.EndInit();
                                    ram.SmallImageSource = bmp;
                                }
                            }
                            catch { }
                        }
                        var sMenu = ChucNanglst.Where(e => e.IDChucNangCha == Tab.IDChucNang).OrderBy(e => e.STT).AsQueryable();
                        foreach (var Menu in sMenu)
                        {
                            switch (Menu.ThuocTinh.SplitByDelimiter("#")[2])
                            {
                            case "RibbonApplicationSplitMenuItem":
                                if (Menu.Quyen == 0)
                                {
                                    goto case "RibbonApplicationMenuItem";
                                }
                                var rasmi = new RibbonApplicationSplitMenuItem();
                                rasmi.Name   = "ID" + Menu.IDChucNang.ToString();
                                rasmi.Header = Utilities.Common.LLanguage.SearchResourceByKey(Menu.TieuDe);
                                if (!Menu.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace())
                                {
                                    toolTip = Menu.ThuocTinh.SplitByDelimiter("#")[0];
                                }
                                else
                                {
                                    toolTip = Menu.TieuDe;
                                }
                                rasmi.ToolTip = Utilities.Common.LLanguage.SearchResourceByKey(toolTip);
                                rasmi.KeyTip  = Menu.ThuocTinh.SplitByDelimiter("#")[3];
                                rasmi.Uid     = Menu.IDChucNang.ToString();
                                if (!Menu.BieuTuong.IsNullOrEmptyOrSpace())
                                {
                                    try
                                    {
                                        BitmapImage bmp = new BitmapImage();
                                        if (Menu.ThuocTinh.SplitByDelimiter("#")[1] == "Both")
                                        {
                                            bmp.BeginInit();
                                            bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[0], UriKind.RelativeOrAbsolute);
                                            bmp.EndInit();
                                            // RibbonApplicationSplitMenuItem icon always large
                                            rasmi.ImageSource = bmp;

                                            bmp = new BitmapImage();
                                            bmp.BeginInit();
                                            bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[1], UriKind.RelativeOrAbsolute);
                                            bmp.EndInit();
                                            // QuickAccessToolBar icon always small
                                            rasmi.QuickAccessToolBarImageSource = bmp;
                                        }
                                        else
                                        {       // Lagre or Small
                                            bmp.BeginInit();
                                            bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong, UriKind.RelativeOrAbsolute);
                                            bmp.EndInit();
                                            rasmi.ImageSource = bmp;
                                            rasmi.QuickAccessToolBarImageSource = bmp;
                                        }
                                    }
                                    catch { }
                                }
                                rasmi.Tag = Menu;
                                //rasmi.IsEnabled = Menu.Quyen > 0;
                                // Items
                                sItem = ChucNanglst.Where(e => e.IDChucNangCha == Menu.IDChucNang).OrderBy(e => e.STT).AsQueryable();
                                foreach (var Item in sItem)
                                {
                                    var item = new RibbonApplicationMenuItem();
                                    item.Name   = "ID" + Item.IDChucNang.ToString();
                                    item.Header = Utilities.Common.LLanguage.SearchResourceByKey(Item.TieuDe);
                                    if (!Item.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace())
                                    {
                                        toolTip = Item.ThuocTinh.SplitByDelimiter("#")[0];
                                    }
                                    else
                                    {
                                        toolTip = Item.TieuDe;
                                    }
                                    item.ToolTip = Utilities.Common.LLanguage.SearchResourceByKey(toolTip);
                                    item.KeyTip  = Item.ThuocTinh.SplitByDelimiter("#")[3];
                                    item.Uid     = Item.IDChucNang.ToString();
                                    if (!Item.BieuTuong.IsNullOrEmptyOrSpace())
                                    {
                                        try
                                        {
                                            BitmapImage bmp = new BitmapImage();
                                            if (Item.ThuocTinh.SplitByDelimiter("#")[1] == "Both")
                                            {
                                                bmp.BeginInit();
                                                bmp.UriSource = new Uri(pathFolderImages + Item.BieuTuong.SplitByDelimiter("#")[0], UriKind.RelativeOrAbsolute);
                                                bmp.EndInit();
                                                // RibbonApplicationMenuItem icon always large
                                                item.ImageSource = bmp;

                                                bmp = new BitmapImage();
                                                bmp.BeginInit();
                                                bmp.UriSource = new Uri(pathFolderImages + Item.BieuTuong.SplitByDelimiter("#")[1], UriKind.RelativeOrAbsolute);
                                                bmp.EndInit();
                                                // QuickAccessToolBar icon always small
                                                item.QuickAccessToolBarImageSource = bmp;
                                            }
                                            else
                                            {       // Lagre or Small
                                                bmp.BeginInit();
                                                bmp.UriSource = new Uri(pathFolderImages + Item.BieuTuong, UriKind.RelativeOrAbsolute);
                                                bmp.EndInit();
                                                item.ImageSource = bmp;
                                                item.QuickAccessToolBarImageSource = bmp;
                                            }
                                        }
                                        catch { }
                                    }
                                    item.Tag       = Item;
                                    item.IsEnabled = Item.Quyen > 0;
                                    rasmi.Items.Add(item);
                                }
                                ram.Items.Add(rasmi);
                                break;

                            case "RibbonApplicationMenuItem":
                                var rami = new RibbonApplicationMenuItem();
                                rami.Name   = "ID" + Menu.IDChucNang.ToString();
                                rami.Header = Utilities.Common.LLanguage.SearchResourceByKey(Menu.TieuDe);
                                if (!Menu.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace())
                                {
                                    toolTip = Menu.ThuocTinh.SplitByDelimiter("#")[0];
                                }
                                else
                                {
                                    toolTip = Menu.TieuDe;
                                }
                                rami.ToolTip = Utilities.Common.LLanguage.SearchResourceByKey(toolTip);
                                rami.KeyTip  = Menu.ThuocTinh.SplitByDelimiter("#")[3];
                                rami.Uid     = Menu.IDChucNang.ToString();
                                if (!Menu.BieuTuong.IsNullOrEmptyOrSpace())
                                {
                                    try
                                    {
                                        BitmapImage bmp = new BitmapImage();
                                        if (Menu.ThuocTinh.SplitByDelimiter("#")[1] == "Both")
                                        {
                                            bmp.BeginInit();
                                            bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[0], UriKind.RelativeOrAbsolute);
                                            bmp.EndInit();
                                            // RibbonApplicationMenuItem icon always large
                                            rami.ImageSource = bmp;

                                            bmp = new BitmapImage();
                                            bmp.BeginInit();
                                            bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[1], UriKind.RelativeOrAbsolute);
                                            bmp.EndInit();
                                            // QuickAccessToolBar icon always small
                                            rami.QuickAccessToolBarImageSource = bmp;
                                        }
                                        else
                                        {       // Lagre or Small
                                            bmp.BeginInit();
                                            bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong, UriKind.RelativeOrAbsolute);
                                            bmp.EndInit();
                                            rami.ImageSource = bmp;
                                            rami.QuickAccessToolBarImageSource = bmp;
                                        }
                                    }
                                    catch { }
                                }
                                if (!Menu.ChucNang.IsNullOrEmptyOrSpace())
                                {
                                    rami.Tag = Menu;
                                }
                                //rami.IsEnabled = Menu.Quyen > 0;
                                // Items
                                sItem = ChucNanglst.Where(e => e.IDChucNangCha == Menu.IDChucNang).OrderBy(e => e.STT).AsQueryable();
                                foreach (var Item in sItem)
                                {
                                    var item = new RibbonApplicationMenuItem();
                                    item.Name   = "ID" + Item.IDChucNang.ToString();
                                    item.Header = Utilities.Common.LLanguage.SearchResourceByKey(Item.TieuDe);
                                    if (!Item.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace())
                                    {
                                        toolTip = Item.ThuocTinh.SplitByDelimiter("#")[0];
                                    }
                                    else
                                    {
                                        toolTip = Item.TieuDe;
                                    }
                                    item.ToolTip = Utilities.Common.LLanguage.SearchResourceByKey(toolTip);
                                    item.KeyTip  = Item.ThuocTinh.SplitByDelimiter("#")[3];
                                    item.Uid     = Item.IDChucNang.ToString();
                                    if (!Item.BieuTuong.IsNullOrEmptyOrSpace())
                                    {
                                        try
                                        {
                                            BitmapImage bmp = new BitmapImage();
                                            if (Item.ThuocTinh.SplitByDelimiter("#")[1] == "Both")
                                            {
                                                bmp.BeginInit();
                                                bmp.UriSource = new Uri(pathFolderImages + Item.BieuTuong.SplitByDelimiter("#")[0], UriKind.RelativeOrAbsolute);
                                                bmp.EndInit();
                                                // RibbonApplicationMenuItem icon always large
                                                item.ImageSource = bmp;

                                                bmp = new BitmapImage();
                                                bmp.BeginInit();
                                                bmp.UriSource = new Uri(pathFolderImages + Item.BieuTuong.SplitByDelimiter("#")[1], UriKind.RelativeOrAbsolute);
                                                bmp.EndInit();
                                                // QuickAccessToolBar icon always small
                                                item.QuickAccessToolBarImageSource = bmp;
                                            }
                                            else
                                            {       // Lagre or Small
                                                bmp.BeginInit();
                                                bmp.UriSource = new Uri(pathFolderImages + Item.BieuTuong, UriKind.RelativeOrAbsolute);
                                                bmp.EndInit();
                                                item.ImageSource = bmp;
                                                item.QuickAccessToolBarImageSource = bmp;
                                            }
                                        }
                                        catch { }
                                    }
                                    item.Tag       = Item;
                                    item.IsEnabled = Item.Quyen > 0;
                                    rami.Items.Add(item);
                                }
                                ram.Items.Add(rami);
                                break;

                            default:
                                Grid grid;
                                if (ram.FooterPaneContent.IsNullOrEmpty())
                                {
                                    grid = new Grid();
                                    grid.ColumnDefinitions.Add(new ColumnDefinition());
                                    ColumnDefinition cd = new ColumnDefinition();
                                    cd.Width = GridLength.Auto;
                                    grid.ColumnDefinitions.Add(cd);
                                    ram.FooterPaneContent = grid;
                                }
                                else
                                {
                                    grid = (Grid)(ram.FooterPaneContent);
                                }

                                var rb = new RibbonButton();
                                rb.Name  = "ID" + Menu.IDChucNang.ToString();
                                rb.Label = Utilities.Common.LLanguage.SearchResourceByKey(Menu.TieuDe);
                                if (!Menu.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace())
                                {
                                    toolTip = Menu.ThuocTinh.SplitByDelimiter("#")[0];
                                }
                                else
                                {
                                    toolTip = Menu.TieuDe;
                                }
                                rb.ToolTip = Utilities.Common.LLanguage.SearchResourceByKey(toolTip);
                                rb.KeyTip  = Menu.ThuocTinh.SplitByDelimiter("#")[3];
                                rb.Uid     = Menu.IDChucNang.ToString();
                                if (!Menu.BieuTuong.IsNullOrEmptyOrSpace())
                                {
                                    try
                                    {
                                        BitmapImage bmp = new BitmapImage();
                                        if (Menu.ThuocTinh.SplitByDelimiter("#")[1] == "Both")
                                        {
                                            bmp.BeginInit();
                                            bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[0], UriKind.RelativeOrAbsolute);
                                            bmp.EndInit();
                                            rb.LargeImageSource = bmp;

                                            bmp = new BitmapImage();
                                            bmp.BeginInit();
                                            bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[1], UriKind.RelativeOrAbsolute);
                                            bmp.EndInit();
                                            rb.SmallImageSource = bmp;
                                        }
                                        else
                                        {       // Lagre or Small
                                            bmp.BeginInit();
                                            bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong, UriKind.RelativeOrAbsolute);
                                            bmp.EndInit();
                                            if (Menu.ThuocTinh.SplitByDelimiter("#")[1] == "Large")
                                            {
                                                rb.LargeImageSource = bmp;
                                            }
                                            else
                                            {
                                                rb.SmallImageSource = bmp;
                                            }
                                        }
                                    }
                                    catch { }
                                }
                                rb.Tag       = Menu;
                                rb.IsEnabled = Menu.Quyen > 0;
                                grid.Children.Add(rb);
                                Grid.SetColumn(rb, 1);
                                break;
                            }
                        }
                        rbMenu.ApplicationMenu = ram;
                    }
                    else
                    {   // Tabs
                        RibbonTab tab     = new RibbonTab();
                        Type      rthType = new RibbonTabHeader().GetType();
                        tab.Header = Utilities.Common.LLanguage.SearchResourceByKey(Tab.TieuDe);
                        if (!Tab.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace())
                        {
                            toolTip = Tab.ThuocTinh.SplitByDelimiter("#")[0];
                        }
                        else
                        {
                            toolTip = Tab.TieuDe;
                        }
                        tab.ToolTip     = Utilities.Common.LLanguage.SearchResourceByKey(toolTip);
                        tab.HeaderStyle = new Style(rthType);
                        tab.HeaderStyle.Setters.Add(new Setter(RibbonWindow.ToolTipProperty, tab.ToolTip));
                        tab.IsEnabled = Tab.Quyen > 0;
                        tab.Uid       = Tab.IDChucNang.ToString();
                        // Groups
                        var sGroup = ChucNanglst.Where(e => e.IDChucNangCha == Tab.IDChucNang).OrderBy(e => e.STT).AsQueryable();
                        foreach (var Group in sGroup)
                        {
                            RibbonGroup group = new RibbonGroup();
                            group.Header    = Utilities.Common.LLanguage.SearchResourceByKey(Group.TieuDe);
                            group.IsEnabled = Group.Quyen > 0;
                            // Buttons
                            var sMenu = ChucNanglst.Where(e => e.IDChucNangCha == Group.IDChucNang).OrderBy(e => e.STT).AsQueryable();
                            foreach (var Menu in sMenu)
                            {
                                switch (Menu.ThuocTinh.SplitByDelimiter("#")[2])
                                {
                                case "RibbonSplitButton":
                                    if (Menu.Quyen == 0)
                                    {
                                        goto case "RibbonMenuButton";
                                    }
                                    var rsb = new RibbonSplitButton();
                                    rsb.Name  = "ID" + Menu.IDChucNang.ToString();
                                    rsb.Label = Utilities.Common.LLanguage.SearchResourceByKey(Menu.TieuDe);
                                    if (!Menu.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace())
                                    {
                                        toolTip = Menu.ThuocTinh.SplitByDelimiter("#")[0];
                                    }
                                    else
                                    {
                                        toolTip = Menu.TieuDe;
                                    }
                                    rsb.ToolTip = Utilities.Common.LLanguage.SearchResourceByKey(toolTip);
                                    rsb.KeyTip  = Menu.ThuocTinh.SplitByDelimiter("#")[3];
                                    rsb.Uid     = Menu.IDChucNang.ToString();
                                    if (!Menu.BieuTuong.IsNullOrEmptyOrSpace())
                                    {
                                        try
                                        {
                                            BitmapImage bmp = new BitmapImage();
                                            if (Menu.ThuocTinh.SplitByDelimiter("#")[1] == "Both")
                                            {
                                                bmp.BeginInit();
                                                bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[0], UriKind.RelativeOrAbsolute);
                                                bmp.EndInit();
                                                rsb.LargeImageSource = bmp;

                                                bmp = new BitmapImage();
                                                bmp.BeginInit();
                                                bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[1], UriKind.RelativeOrAbsolute);
                                                bmp.EndInit();
                                                rsb.SmallImageSource = bmp;
                                            }
                                            else
                                            {       // Lagre or Small
                                                bmp.BeginInit();
                                                bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong, UriKind.RelativeOrAbsolute);
                                                bmp.EndInit();
                                                if (Menu.ThuocTinh.SplitByDelimiter("#")[1] == "Large")
                                                {
                                                    rsb.LargeImageSource = bmp;
                                                }
                                                else
                                                {
                                                    rsb.SmallImageSource = bmp;
                                                }
                                            }
                                        }
                                        catch { }
                                    }
                                    rsb.Tag = Menu;
                                    //rsb.IsEnabled = Menu.Quyen > 0;
                                    // Items
                                    sItem = ChucNanglst.Where(e => e.IDChucNangCha == Menu.IDChucNang).OrderBy(e => e.STT).AsQueryable();
                                    foreach (var Item in sItem)
                                    {
                                        var item = new RibbonMenuItem();
                                        item.Name   = "ID" + Item.IDChucNang.ToString();
                                        item.Header = Utilities.Common.LLanguage.SearchResourceByKey(Item.TieuDe);
                                        if (!Item.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace())
                                        {
                                            toolTip = Item.ThuocTinh.SplitByDelimiter("#")[0];
                                        }
                                        else
                                        {
                                            toolTip = Item.TieuDe;
                                        }
                                        item.ToolTip = Utilities.Common.LLanguage.SearchResourceByKey(toolTip);
                                        item.KeyTip  = Item.ThuocTinh.SplitByDelimiter("#")[3];
                                        item.Uid     = Item.IDChucNang.ToString();
                                        if (!Item.BieuTuong.IsNullOrEmptyOrSpace())
                                        {
                                            try
                                            {
                                                BitmapImage bmp = new BitmapImage();
                                                if (Item.ThuocTinh.SplitByDelimiter("#")[1] == "Both")
                                                {
                                                    bmp.BeginInit();
                                                    bmp.UriSource = new Uri(pathFolderImages + Item.BieuTuong.SplitByDelimiter("#")[1], UriKind.RelativeOrAbsolute);
                                                    bmp.EndInit();
                                                    // RibbonMenuItem icon always small
                                                    item.ImageSource = bmp;
                                                    // QuickAccessToolBar icon always small
                                                    item.QuickAccessToolBarImageSource = bmp;
                                                }
                                                else
                                                {       // Lagre or Small
                                                    bmp.BeginInit();
                                                    bmp.UriSource = new Uri(pathFolderImages + Item.BieuTuong, UriKind.RelativeOrAbsolute);
                                                    bmp.EndInit();
                                                    item.ImageSource = bmp;
                                                    item.QuickAccessToolBarImageSource = bmp;
                                                }
                                            }
                                            catch { }
                                        }
                                        item.Tag       = Item;
                                        item.IsEnabled = Item.Quyen > 0;
                                        rsb.Items.Add(item);
                                    }
                                    group.Items.Add(rsb);
                                    break;

                                case "RibbonMenuButton":
                                    var rmb = new RibbonMenuButton();
                                    rmb.Name  = "ID" + Menu.IDChucNang.ToString();
                                    rmb.Label = Utilities.Common.LLanguage.SearchResourceByKey(Menu.TieuDe);
                                    if (!Menu.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace())
                                    {
                                        toolTip = Menu.ThuocTinh.SplitByDelimiter("#")[0];
                                    }
                                    else
                                    {
                                        toolTip = Menu.TieuDe;
                                    }
                                    rmb.ToolTip = Utilities.Common.LLanguage.SearchResourceByKey(toolTip);
                                    rmb.KeyTip  = Menu.ThuocTinh.SplitByDelimiter("#")[3];
                                    rmb.Uid     = Menu.IDChucNang.ToString();
                                    if (!Menu.BieuTuong.IsNullOrEmptyOrSpace())
                                    {
                                        try
                                        {
                                            BitmapImage bmp = new BitmapImage();
                                            if (Menu.ThuocTinh.SplitByDelimiter("#")[1] == "Both")
                                            {
                                                bmp.BeginInit();
                                                bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[0], UriKind.RelativeOrAbsolute);
                                                bmp.EndInit();
                                                rmb.LargeImageSource = bmp;

                                                bmp = new BitmapImage();
                                                bmp.BeginInit();
                                                bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[1], UriKind.RelativeOrAbsolute);
                                                bmp.EndInit();
                                                rmb.SmallImageSource = bmp;
                                            }
                                            else
                                            {       // Lagre or Small
                                                bmp.BeginInit();
                                                bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong, UriKind.RelativeOrAbsolute);
                                                bmp.EndInit();
                                                if (Menu.ThuocTinh.SplitByDelimiter("#")[1] == "Large")
                                                {
                                                    rmb.LargeImageSource = bmp;
                                                }
                                                else
                                                {
                                                    rmb.SmallImageSource = bmp;
                                                }
                                            }
                                        }
                                        catch { }
                                    }
                                    //rmb.IsEnabled = Menu.Quyen > 0;
                                    // Items
                                    sItem = ChucNanglst.Where(e => e.IDChucNangCha == Menu.IDChucNang).OrderBy(e => e.STT).AsQueryable();
                                    foreach (var Item in sItem)
                                    {
                                        var item = new RibbonMenuItem();
                                        item.Name   = "ID" + Item.IDChucNang.ToString();
                                        item.Header = Utilities.Common.LLanguage.SearchResourceByKey(Item.TieuDe);
                                        if (!Item.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace())
                                        {
                                            toolTip = Item.ThuocTinh.SplitByDelimiter("#")[0];
                                        }
                                        else
                                        {
                                            toolTip = Item.TieuDe;
                                        }
                                        item.ToolTip = Utilities.Common.LLanguage.SearchResourceByKey(toolTip);
                                        item.KeyTip  = Item.ThuocTinh.SplitByDelimiter("#")[3];
                                        item.Uid     = Item.IDChucNang.ToString();
                                        if (!Item.BieuTuong.IsNullOrEmptyOrSpace())
                                        {
                                            try
                                            {
                                                BitmapImage bmp = new BitmapImage();
                                                if (Item.ThuocTinh.SplitByDelimiter("#")[1] == "Both")
                                                {
                                                    bmp.BeginInit();
                                                    bmp.UriSource = new Uri(pathFolderImages + Item.BieuTuong.SplitByDelimiter("#")[1], UriKind.RelativeOrAbsolute);
                                                    bmp.EndInit();
                                                    // RibbonMenuItem icon always small
                                                    item.ImageSource = bmp;
                                                    // QuickAccessToolBar icon always small
                                                    item.QuickAccessToolBarImageSource = bmp;
                                                }
                                                else
                                                {       // Lagre or Small
                                                    bmp.BeginInit();
                                                    bmp.UriSource = new Uri(pathFolderImages + Item.BieuTuong, UriKind.RelativeOrAbsolute);
                                                    bmp.EndInit();
                                                    item.ImageSource = bmp;
                                                    item.QuickAccessToolBarImageSource = bmp;
                                                }
                                            }
                                            catch { }
                                        }
                                        item.Tag       = Item;
                                        item.IsEnabled = Item.Quyen > 0;
                                        rmb.Items.Add(item);
                                    }
                                    group.Items.Add(rmb);
                                    break;

                                default:
                                    var rb = new RibbonButton();
                                    rb.Name  = "ID" + Menu.IDChucNang.ToString();
                                    rb.Label = Utilities.Common.LLanguage.SearchResourceByKey(Menu.TieuDe);
                                    if (!Menu.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace())
                                    {
                                        toolTip = Menu.ThuocTinh.SplitByDelimiter("#")[0];
                                    }
                                    else
                                    {
                                        toolTip = Menu.TieuDe;
                                    }
                                    rb.ToolTip = Utilities.Common.LLanguage.SearchResourceByKey(toolTip);
                                    rb.KeyTip  = Menu.ThuocTinh.SplitByDelimiter("#")[3];
                                    rb.Uid     = Menu.IDChucNang.ToString();
                                    if (!Menu.BieuTuong.IsNullOrEmptyOrSpace())
                                    {
                                        try
                                        {
                                            BitmapImage bmp = new BitmapImage();
                                            if (Menu.ThuocTinh.SplitByDelimiter("#")[1] == "Both")
                                            {
                                                bmp.BeginInit();
                                                bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[0], UriKind.RelativeOrAbsolute);
                                                bmp.EndInit();
                                                rb.LargeImageSource = bmp;

                                                bmp = new BitmapImage();
                                                bmp.BeginInit();
                                                bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[1], UriKind.RelativeOrAbsolute);
                                                bmp.EndInit();
                                                rb.SmallImageSource = bmp;
                                            }
                                            else
                                            {       // Lagre or Small
                                                bmp.BeginInit();
                                                bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong, UriKind.RelativeOrAbsolute);
                                                bmp.EndInit();
                                                if (Menu.ThuocTinh.SplitByDelimiter("#")[1] == "Large")
                                                {
                                                    rb.LargeImageSource = bmp;
                                                }
                                                else
                                                {
                                                    rb.SmallImageSource = bmp;
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            LLogging.WriteLog(ex.TargetSite.Name, LLogging.LogType.ERR, ex);
                                        }
                                    }
                                    rb.Tag       = Menu;
                                    rb.IsEnabled = Menu.Quyen > 0;
                                    group.Items.Add(rb);
                                    break;
                                }
                            }
                            tab.Items.Add(group);
                        }
                        rbMenu.Items.Add(tab);
                    }
                }
            }
            catch (Exception ex)
            {
                // Ghi log Exception
                LLogging.WriteLog(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString(), LLogging.LogType.ERR, ex);
            }
        }