/// <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); }
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); } }
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); } }
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; }
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; }
/// <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(); }
/// <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); }
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 ); } }
/// <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); }
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(); })); }
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 }
/// <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); } }