/// <summary> /// Método responsável em adicionar nova tab de acordo com objeto respectivo. /// </summary> /// <param name="form">Form que será referenciado para exibição do contexto.</param> /// <param name="value">Valor que será transportado para form</param> /// <param name="sender">Objeto que chamou o comando</param> /// <returns>Retorno a tab para objeto da chamado poder encerrar o mesmo.</returns> public RibbonTab AddTab(FBase form, object sender) { // Pego o caminho temporário do usuário no sistema. var path = Path.GetTempPath(); // Savo a imagem temporária. var guid = Guid.NewGuid().ToString(); form.ImageSource?.Save(path + $"\\{guid}.bmp"); var context = new[] { form, sender }; // Crio o botão da ribon, passando nome do form, e a imagem. var ribbonButton = new RibbonButton { Label = form.Text ?? form.Name, LargeImageSource = new BitmapImage(new Uri(path + $"\\{guid}.bmp")), Tag = context }; ribbonButton.Click += RibbonButtonOnClick; // Cria um grupo opções, onde conterá o botão. var ribbonGroup = new RibbonGroup { Header = "Opções", Items = { ribbonButton } }; var nameModule = form.Module; // Finalmente gera a tab que representará o objeto passado no contexto. var tab = new RibbonTab { Header = ribbonButton.Label, Items = { ribbonGroup }, ContextualTabGroupHeader = nameModule }; var tabGroup = new RibbonContextualTabGroup { Header = nameModule, Background = new SolidColorBrush(Color.FromRgb(254, 92, 1)), Foreground = new SolidColorBrush(Color.FromRgb(0, 0, 0)), Visibility = Visibility.Visible, Margin = new Thickness(0, -25, 0, 0), Width = 150 }; Ribbon.ContextualTabGroups.Add(tabGroup); // Adiciona a tab no menu atual. Ribbon.Items.Add(tab); return(tab); }
/// <summary> /// Responsável em passar para menu, qual form será acrescentado na aba /// </summary> /// <param name="form">Form que será referenciado</param> /// <param name="sender">Component que solicitou a adição da aba.</param> /// <returns>Retorna a aba adicionada, para proprio component que a chamou finalize sua solicitação, quando necessário.</returns> public override RibbonTab AddTab(FBase form, object sender) { return(sMenuProcess1.AddTab(form, sender)); }
/// <summary> /// Responsável em passar para menu, qual form será acrescentado na aba /// </summary> /// <param name="form">Form que será referenciado</param> /// <param name="sender">Component que solicitou a adição da aba.</param> /// <returns>Retorna a aba adicionada, para proprio component que a chamou finalize sua solicitação, quando necessário.</returns> public virtual RibbonTab AddTab(FBase form, object sender) { return(null); }