Exemple #1
0
        private RibbonMenu CreateStartMenu()
        {
            RibbonMenu menu = new RibbonMenu();

            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.SmallImage = StartImages.New;
                button.Name       = "新建文档";
                menu.MenuItems.Add(button);
            }
            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.SmallImage = StartImages.Open;
                button.Name       = "打开文档";
                button.Enabled    = false;
                menu.MenuItems.Add(button);
            }
            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.SmallImage = StartImages.Save;
                button.Name       = "保存文档";
                menu.MenuItems.Add(button);
            }
            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.Name = "关闭";
                menu.MenuItems.Add(button);
            }
            return(menu);
        }
Exemple #2
0
        private void MaskDataColumnNames(dynamic data)
        {
            // flatten data object in of an array
            if (data.GetType() == typeof(JArray))
            {
                data = data[0];
            }

            // find merge fields ribbon menu button
            RibbonMenuButton ctlInsertMergeFields =
                ribbonReportingTab1.FindItem(
                    RibbonReportingTab.RibbonItem.TXITEM_InsertMergeField)
                as RibbonMenuButton;

            // get the selected master table info
            DataTableInfo dataTableInfo =
                ribbonReportingTab1.DataSourceManager.MasterDataTableInfo;

            // select token in data object
            if (dataTableInfo.TableName != "RootTable")
            {
                data = data.SelectToken("$.." + dataTableInfo.TableName);
            }

            // change the strings
            ApplyMaskedString(ctlInsertMergeFields.DropDownItems, data);
        }
        private void Pluginmenu_MenuItem_Click(object sender, MouseButtonEventArgs e)
        {
            RibbonMenuButton mi = (RibbonMenuButton)sender;
            IDspPlugin1      p  = (IDspPlugin1)mi.DataContext;

            IEnumerable <XElement> retsigs = this.ExecutePluginWithDialog(p, 0.0, null);

            // xxx neuen stapel erzeugen und da retsigs reinschmeissen
        }
        void IExpandCollapseProvider.Expand()
        {
            if (!IsEnabled())
            {
                throw new ElementNotEnabledException();
            }

            RibbonMenuButton owner = OwningMenuButton;

            if (!owner.HasItems)
            {
                throw new InvalidOperationException(Microsoft.Windows.Controls.SR.Get(Microsoft.Windows.Controls.SRID.UIA_OperationCannotBePerformed));
            }

            owner.IsDropDownOpen = true;
        }
Exemple #5
0
        void IExpandCollapseProvider.Collapse()
        {
            if (!IsEnabled())
            {
                throw new ElementNotEnabledException();
            }

            RibbonMenuButton owner = OwningMenuButton;

            if (!owner.HasItems)
            {
                throw new InvalidOperationException(SR.Get(SRID.UIA_OperationCannotBePerformed));
            }

            owner.IsDropDownOpen = false;
        }
Exemple #6
0
        /// <summary>
        ///  Creates peers for CustomizeMenuButton and adds them to the
        ///  collection of children peers.
        /// </summary>
        /// <returns></returns>
        protected override List <AutomationPeer> GetChildrenCore()
        {
            List <AutomationPeer> children            = base.GetChildrenCore();
            RibbonMenuButton      customizeMenuButton = OwningToolBar.CustomizeMenuButton;

            if (customizeMenuButton != null)
            {
                if (children == null)
                {
                    children = new List <AutomationPeer>();
                }
                children.Add(CreatePeerForElement(customizeMenuButton));
            }

            return(children);
        }
Exemple #7
0
        private RibbonMenu CreateSortMenu()
        {
            RibbonMenu menu = new RibbonMenu();

            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.SmallImage = ToolImages.SortAscending;
                button.Name       = "我还是不知道为什么要排序";
                menu.MenuItems.Add(button);
            }
            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.SmallImage = ToolImages.SortDescending;
                button.Name       = "我还是不知道为什么要反着排序";
                menu.MenuItems.Add(button);
            }
            return(menu);
        }
Exemple #8
0
        private RibbonDropDownMenu CreateOpenMenu(RibbonContainer container)
        {
            string[] resources = typeof(TurtleIdeForm).Assembly.GetManifestResourceNames()
                                 .Where(s => s.EndsWith(".turtle.txt"))
                                 .ToArray();
            RibbonMenu menu = new RibbonMenu();

            foreach (string resource in resources)
            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.SmallImage = TurtleIdeRibbon.New;
                button.Name       = resource.Substring("VlTurtle.Sample.NativeX.".Length);
                button.Executed  += new EventHandler(ribbonOpenSample_Click);
                menu.MenuItems.Add(button);
            }
            return(new RibbonDropDownMenu(container)
            {
                Menu = menu
            });
        }
Exemple #9
0
        private RibbonMenu CreateStartMenu()
        {
            RibbonMenu menu = new RibbonMenu();

            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.SmallImage = TurtleIdeRibbon.New;
                button.Name       = "New Turtle";
                button.Executed  += (s, e) => this.content.OperationNew();
                menu.MenuItems.Add(button);
            }
            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.SmallImage = TurtleIdeRibbon.Open;
                button.Name       = "Open Turtle";
                button.Executed  += (s, e) => this.content.OperationOpen();
                menu.MenuItems.Add(button);
            }
            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.SmallImage = TurtleIdeRibbon.Save;
                button.Name       = "Save Turtle";
                button.Executed  += (s, e) => this.content.OperationSave();
                menu.MenuItems.Add(button);
            }
            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.SmallImage = TurtleIdeRibbon.SaveAs;
                button.Name       = "Save Turtle As";
                button.Executed  += (s, e) => this.content.OperationSaveAs();
                menu.MenuItems.Add(button);
            }
            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.Name      = "Exit";
                button.Executed += (s, e) => this.Close();
                menu.MenuItems.Add(button);
            }
            return(menu);
        }
Exemple #10
0
        private RibbonMenu CreateAlignMenu()
        {
            RibbonMenu menu = new RibbonMenu();

            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.SmallImage = ToolImages.AlignLeft;
                button.Name       = "左对齐";
                menu.MenuItems.Add(button);
            }
            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.SmallImage = ToolImages.AlignCenter;
                button.Name       = "中间对齐";
                button.DropDown   = new RibbonDropDownMenu(this.Ribbon)
                {
                    Menu = CreateSortMenu()
                };
                menu.MenuItems.Add(button);
            }
            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.SmallImage = ToolImages.AlignRight;
                button.Name       = "右对齐";
                menu.MenuItems.Add(button);
            }
            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.SmallImage = ToolImages.AlignFull;
                button.Name       = "全部对齐";
                menu.MenuItems.Add(button);
            }
            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.SmallImage = ToolImages.AlignExpand;
                button.Name       = "不知道是什么对齐";
                menu.MenuItems.Add(button);
            }
            return(menu);
        }
Exemple #11
0
        protected override void OnIsItemsHostChanged(bool oldIsItemsHost, bool newIsItemsHost)
        {
            base.OnIsItemsHostChanged(oldIsItemsHost, newIsItemsHost);

            ItemsControl     itemsControl     = ParentItemsControl;
            RibbonMenuButton menuButtonParent = itemsControl as RibbonMenuButton;
            RibbonMenuItem   menuItemParent   = itemsControl as RibbonMenuItem;

            // ParentItemsControl should be either RibbonMenuButton or RibbonMenuItem
            if (menuButtonParent != null || menuItemParent != null)
            {
                if (newIsItemsHost)
                {
                    IItemContainerGenerator generator = itemsControl.ItemContainerGenerator as IItemContainerGenerator;
                    if (generator != null && generator.GetItemContainerGeneratorForPanel(this) == generator)
                    {
                        if (menuButtonParent != null)
                        {
                            menuButtonParent.InternalItemsHost = this;
                        }
                        else if (menuItemParent != null)
                        {
                            menuItemParent.InternalItemsHost = this;
                        }
                    }
                }
                else
                {
                    if (menuButtonParent != null && menuButtonParent.InternalItemsHost == this)
                    {
                        menuButtonParent.InternalItemsHost = null;
                    }
                    else if (menuItemParent != null && menuItemParent.InternalItemsHost == this)
                    {
                        menuItemParent.InternalItemsHost = null;
                    }
                }
            }
        }
        /// <summary>
        ///   Returns name for automation clients to display
        /// </summary>
        protected override string GetNameCore()
        {
            string           name  = base.GetNameCore();
            RibbonMenuButton owner = OwningMenuButton;

            if (String.IsNullOrEmpty(name))
            {
                name = owner.Label;
            }

            // Get ToggleButton.Content
            if (String.IsNullOrEmpty(name) && owner.PartToggleButton != null)
            {
                AutomationPeer buttonPeer = UIElementAutomationPeer.CreatePeerForElement(owner.PartToggleButton);
                if (buttonPeer != null)
                {
                    name = buttonPeer.GetName();
                }
            }

            return(name);
        }
        protected override List <AutomationPeer> GetChildrenCore()
        {
            List <AutomationPeer> children = base.GetChildrenCore();

            // Add PartToggleButton to the children collection.  Partially fixes Dev11 42908.
            RibbonMenuButton owner = OwningMenuButton;

            if (owner != null && owner.PartToggleButton != null)
            {
                AutomationPeer peer = CreatePeerForElement(owner.PartToggleButton);
                if (peer != null)
                {
                    if (children == null)
                    {
                        children = new List <AutomationPeer>(1);
                    }

                    children.Insert(0, peer);
                }
            }

            return(children);
        }
Exemple #14
0
        private void InitializeComponents()
        {
            base.Id = Id;
            Title   = "OPTIMARCH";
            Panels.Add(new RibbonPanel
            {
                Source = new RibbonPanelSource
                {
                    Title = "发布"
                }
            });



            var list = new RibbonMenuButton();
            var a0   = new RibbonMenuItem
            {
                Text     = "A0",
                ShowText = true,
            };

            list.Items.Add(a0);
            Panels[0].Source.Items.Add(list);
        }
        private void LoadPSFolders(DirectoryInfo Dir, RibbonMenuButton Menu)
        {
            foreach (string sFile in Directory.GetFiles(Dir.FullName, "*.ps1", SearchOption.TopDirectoryOnly))
            {
                try
                {
                    RibbonButton PSItem = new RibbonButton();
                    PSItem.Label               = System.IO.Path.GetFileNameWithoutExtension(new FileInfo(sFile).FullName);
                    PSItem.Tag                 = sFile;
                    PSItem.SmallImageSource    = new BitmapImage(new Uri("/Plugin_PSScripts;component/Images/PS.ico", UriKind.Relative));
                    PSItem.ToolTip             = sFile;
                    PSItem.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
                    PSItem.Click              += PSItem_Click;

                    Menu.Items.Add(PSItem);
                }
                catch { }
            }

            foreach (string sDir in Directory.GetDirectories(Dir.FullName, "*", SearchOption.TopDirectoryOnly))
            {
                try
                {
                    RibbonMenuButton PSFolder = new RibbonMenuButton();
                    PSFolder.Label               = new DirectoryInfo(sDir).Name;
                    PSFolder.SmallImageSource    = new BitmapImage(new Uri("/Plugin_PSScripts;component/Images/Folder_16.png", UriKind.Relative));
                    PSFolder.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
                    PSFolder.ToolTip             = sDir;
                    PSFolder.Tag = sDir;
                    LoadPSFolders(new DirectoryInfo(sDir), PSFolder);

                    Menu.Items.Add(PSFolder);
                }
                catch { }
            }
        }
Exemple #16
0
        public override MenuTab GetMenu()
        {
            var menu = base.GetMenu();

            if (_controllerMaster != null)
            {
                foreach (var item in menu.Tabs[0].Pannelli)
                {
                    var items = item.Pulsanti.Where(a => a.Tag != null &&
                                                    !a.Tag.Equals(MenuTab.TagAdd) &&
                                                    !a.Tag.Contains(MenuTab.TagRemove)

                                                    ).ToList();
                    item.Pulsanti.RemoveAll(a => items.Contains(a));
                    item.Testo = "Listino fornitori";
                }
                var presenti = menu.Tabs[0].Pannelli.Where(a => a.Pulsanti.Count() > 0).First();
                var save     = new RibbonMenuButton()
                {
                    Testo = "Salva", Immagine = StrumentiMusicali.Core.Properties.ImageIcons.Save
                };
                presenti.Pulsanti.Add(save);
                save.Click += Save_Click;
            }
            else
            {
                if (InLineEditor)
                {
                    int removed = 0;
                    foreach (var item in menu.Tabs[0].Pannelli)
                    {
                        var items = item.Pulsanti.Where(a => a.Tag != null &&
                                                        (a.Tag.Equals(MenuTab.TagAdd) ||
                                                         a.Tag.Contains(MenuTab.TagEdit) ||
                                                         a.Tag.Contains(MenuTab.TagCercaClear) ||
                                                         a.Tag.Contains(MenuTab.TagCerca) ||
                                                         a.Tag.Contains(MenuTab.TagRemove)
                                                        )

                                                        ).ToList();
                        removed += item.Pulsanti.RemoveAll(a => items.Contains(a));
                    }
                    menu.Tabs[0].Pannelli.RemoveAll(a => a.Pulsanti.Count == 0);
                    if (removed != 0)
                    {
                        var presenti  = menu.Tabs[0].Pannelli.Where(a => a.Pulsanti.Count() > 0).First();
                        var generaOdg = new RibbonMenuButton()
                        {
                            Testo = "Genera ordini di acquisto", Immagine = StrumentiMusicali.Core.Properties.ImageIcons.GeneraODQ_
                        };
                        presenti.Pulsanti.Add(generaOdg);
                        generaOdg.Click += GeneraOdq_click;

                        var savePreordine = new RibbonMenuButton()
                        {
                            Testo = "Salva Qta da ordinare", Immagine = StrumentiMusicali.Core.Properties.ImageIcons.Save
                        };
                        presenti.Pulsanti.Add(savePreordine);
                        savePreordine.Click += SavePreordine_Click;;
                    }
                }
            }
            return(menu);
        }
Exemple #17
0
        private void UpdateRendererList()
        {
            var list = from value in Plugin.Manager.PluginManager.PluginRendererList
                       orderby value.Group.Name ascending
                       group value by value.Group;

            foreach (var group in list)
            {
                RibbonGroup rgGroup = new RibbonGroup();
                rgGroup.Header           = group.Key.Name;
                rgGroup.SmallImageSource = group.Key.Image.Source;
                rgGroup.Tag = group.Key;

                rtRenderer.Items.Add(rgGroup);


                /* Effects */
                IEnumerator <IRenderer> renderers = group.GetEnumerator();
                while (renderers.MoveNext())
                {
                    if (renderers.Current.DefaultCount > 0)
                    {
                        RibbonMenuButton btn = new RibbonMenuButton();
                        btn.Label            = renderers.Current.Name;
                        btn.SmallImageSource = renderers.Current.Icon.Source;

                        btn.ToolTipTitle             = renderers.Current.Name;
                        btn.ToolTipImageSource       = BitmapFrame.Create(new Uri("pack://application:,,, /Effect FX;component/Resources/Info.ico"));
                        btn.ToolTipDescription       = renderers.Current.Description;
                        btn.ToolTipFooterTitle       = renderers.Current.Group.Name;
                        btn.ToolTipFooterImageSource = renderers.Current.Group.Image.Source;
                        btn.ToolTipFooterDescription = renderers.Current.Group.Description;

                        btn.Tag = renderers.Current;

                        RibbonGallery gallery = new RibbonGallery();
                        gallery.MaxHeight = 500;
                        gallery.Command   = (ICommand)Resources["cmdImageNull"];
                        RibbonGalleryCategory cat = new RibbonGalleryCategory();
                        gallery.Items.Add(cat);

                        for (int i = 0; i < renderers.Current.DefaultCount; i++)
                        {
                            RibbonGalleryItem item  = new RibbonGalleryItem();
                            Image             image = new Image();
                            image.Width               = 230;
                            image.Height              = 124;
                            image.Stretch             = Stretch.UniformToFill;
                            image.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
                            image.Source              = BitmapFrame.Create(new Uri("pack://application:,,, /Effect FX;component/Resources/preview.png"));
                            image.Source              = renderers.Current.GenerateImage(image.Source as BitmapSource, i);
                            image.Tag = new KeyValuePair <int, IRenderer>(i, renderers.Current);
                            previewImageList.Add(image);
                            item.Content = image;
                            cat.Items.Add(item);

                            int finalIndex = i;
                            image.MouseDown += (s, e) =>
                            {
                                //Console.WriteLine("OK: " + finalIndex);
                                manager.AddAction((btn.Tag as IRenderer).Name, imgPicture.Source as BitmapFrame);
                                imgPicture.Source = (btn.Tag as IRenderer).GenerateImage(
                                    imgPicture.Source as BitmapFrame, finalIndex);
                                UpdatePreviewImages();

                                gallery.SelectedItem = null;
                            };
                        }

                        btn.Items.Add(gallery);
                        rgGroup.Items.Add(btn);
                    }
                    else
                    {
                        RibbonButton btn = new RibbonButton();
                        btn.Label            = renderers.Current.Name;
                        btn.SmallImageSource = renderers.Current.Icon.Source;

                        btn.ToolTipTitle             = renderers.Current.Name;
                        btn.ToolTipImageSource       = BitmapFrame.Create(new Uri("pack://application:,,, /Effect FX;component/Resources/Info.ico"));
                        btn.ToolTipDescription       = renderers.Current.Description;
                        btn.ToolTipFooterTitle       = renderers.Current.Group.Name;
                        btn.ToolTipFooterImageSource = renderers.Current.Group.Image.Source;
                        btn.ToolTipFooterDescription = renderers.Current.Group.Description;

                        btn.Tag = renderers.Current;

                        rgGroup.Items.Add(btn);
                    }
                } //while
            }     //for
        }
 /// <summary>
 ///   Initialize Automation Peer for RibbonButton
 /// </summary>
 public RibbonMenuButtonAutomationPeer(RibbonMenuButton owner)
     : base(owner)
 {
 }
Exemple #19
0
        private RibbonMenu CreateTableMenu()
        {
            RibbonMenu menu = new RibbonMenu();

            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.SmallImage = ToolImages.TableNone;
                button.Name       = "没有边框";
                button.DropDown   = new RibbonDropDownMenu(this.Ribbon)
                {
                    Menu = CreateAlignMenu()
                };
                menu.MenuItems.Add(button);
            }
            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.SmallImage = ToolImages.TableLeft;
                button.Name       = "左边有边框";
                menu.MenuItems.Add(button);
            }
            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.SmallImage = ToolImages.TableRight;
                button.Name       = "右边有边框";
                menu.MenuItems.Add(button);
            }
            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.SmallImage = ToolImages.TableBottom;
                button.Name       = "下面有边框";
                menu.MenuItems.Add(button);
            }
            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.SmallImage = ToolImages.TableBorder;
                button.Name       = "周围都是边框";
                button.Enabled    = false;
                menu.MenuItems.Add(button);
            }
            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.SmallImage = ToolImages.TableAll;
                button.Name       = "连里面都是边框";
                menu.MenuItems.Add(button);
            }
            {
                RibbonMenuSeparator separator = new RibbonMenuSeparator();
                menu.MenuItems.Add(separator);
            }
            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.SmallImage = ToolImages.SortAscending;
                button.Name       = "不知道为什么要排序";
                menu.MenuItems.Add(button);
            }
            {
                RibbonMenuButton button = new RibbonMenuButton();
                button.SmallImage = ToolImages.SortDescending;
                button.Name       = "不知道为什么要反着排序";
                button.DropDown   = new RibbonDropDownMenu(this.Ribbon)
                {
                    Menu = CreateSortMenu()
                };
                menu.MenuItems.Add(button);
            }
            return(menu);
        }
        private void InitPlugins()
        {
            // Initalize all plug-ins
            logger.Debug("Loading plug-ins");

            // Load Plugins
            AggregateCatalog catalog = new AggregateCatalog(new AssemblyCatalog(System.Reflection.Assembly.GetExecutingAssembly()));

            try
            {
                DirectoryCatalog dircatalog = new DirectoryCatalog("Plugins");
                catalog.Catalogs.Add(dircatalog);
            }
            catch (Exception e)
            {
                throw new Exception("Cannot load external plug-ins. Plug-in directory is not available.\n", e);
            }

            try
            {
                CompositionContainer container = new CompositionContainer(catalog);
                container.ComposeParts(this);
            }
            catch (ReflectionTypeLoadException typeLoadException)
            {
                StringBuilder loaderMessages = new StringBuilder();
                loaderMessages.AppendLine("While trying to load composable parts the follwing loader exceptions were found: ");
                foreach (var loaderException in typeLoadException.LoaderExceptions)
                {
                    loaderMessages.AppendLine(loaderException.Message);
                }

                throw new Exception(loaderMessages.ToString(), typeLoadException);
            }

            // Adding Plugins to Ribbon
            Collection <RibbonGroup> groupArray = new Collection <RibbonGroup>();
            bool groupExists = false;
            int  i;

            foreach (IDspPlugin1 plugin in this.DspPlugins)
            {
                // Check if current group exists.
                groupExists = false;
                for (i = 0; i < groupArray.Count; i++)
                {
                    if (plugin.Group == groupArray[i].Header.ToString())
                    {
                        groupExists = true;
                        break;
                    }
                }

                // Create new Group when current group does not exist.
                if (!groupExists)
                {
                    groupArray.Add(new RibbonGroup());
                    i = groupArray.Count - 1;
                    groupArray[i].Header = plugin.Group;
                    //groupArray[i].IsEnabled = false;
                    PluginTab.Items.Add(groupArray[i]);
                }

                RibbonMenuButton rmb = new RibbonMenuButton();
                rmb.Label                       = plugin.Name;
                rmb.LargeImageSource            = plugin.LargeRibbonIcon;
                rmb.SmallImageSource            = plugin.SmallRibbonIcon;
                rmb.ToolTipImageSource          = plugin.LargeRibbonIcon;
                rmb.ToolTipTitle                = plugin.Name;
                rmb.ToolTipDescription          = plugin.Description;
                rmb.ToolTipFooterTitle          = "Copyright";
                rmb.ToolTipFooterImageSource    = plugin.OrganizationIcon;
                rmb.ToolTipFooterDescription    = plugin.CopyrightInfo;
                rmb.DataContext                 = plugin;
                rmb.IsEnabled                   = plugin.IsEnable;
                rmb.PreviewMouseLeftButtonDown += new MouseButtonEventHandler(this.Pluginmenu_MenuItem_Click);
                groupArray[i].Items.Add(rmb);

                logger.Debug("Loaded plug-in '" + plugin.Name + "'");
            }

            this.hotkeys = new Hotkeys(this.settings, this.DspPlugins);

            signalviewercontrol.stackercontrol.DspPlugins = this.DspPlugins;
        }
Exemple #21
0
        private void AggiungiComandiMenu()
        {
            var tabFirst = GetMenu().Tabs[0];
            var pnl      = tabFirst.Pannelli.First();

            pnl.Pulsanti.RemoveAll(a => a.Tag == MenuTab.TagAdd ||
                                   a.Tag == MenuTab.TagRemove || a.Tag == MenuTab.TagCerca ||
                                   a.Tag == MenuTab.TagCercaClear ||
                                   a.Tag == MenuTab.TagEdit
                                   );

            tabFirst.Pannelli.RemoveAt(2);
            tabFirst.Pannelli.RemoveAt(1);

            var _ribPannelImmagini = tabFirst.Add("Immagini");

            var ribAdd = _ribPannelImmagini.Add("Aggiungi",
                                                StrumentiMusicali.Core.Properties.ImageIcons.Add);

            ribAdd.Click += (a, e) =>
            {
                try
                {
                    using (OpenFileDialog res = new OpenFileDialog())
                    {
                        res.Title = "Seleziona file da importare";
                        //Filter
                        res.Filter = "File pdf|*.pdf;|Tutti i file|*.*";

                        res.Multiselect = true;
                        //When the user select the file
                        if (res.ShowDialog() == DialogResult.OK)
                        {
                            var arr = res.FileNames;

                            EventAggregator.Instance().Publish <ImageAddFiles>(
                                new ImageAddFiles(arr.ToList()
                                                  , this._INSTANCE_KEY));
                        }
                    }
                }
                catch (Exception ex)
                {
                    ExceptionManager.ManageError(ex);
                }
            };

            _ribRemove = _ribPannelImmagini.Add(
                "Rimuovi",
                StrumentiMusicali.Core.Properties.ImageIcons.Remove
                );
            _ribRemove.Click += (b, e) =>
            {
                var foto = this.FotoSelezionata();

                EventAggregator.Instance().Publish <ImageRemove <PagamentoDocumenti> >(
                    new ImageRemove <PagamentoDocumenti>(
                        new ImmaginiFile <PagamentoDocumenti>(
                            foto.PathFile,
                            foto.FileName, foto),
                        this._INSTANCE_KEY));
            };
        }
Exemple #22
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);
            }
        }