Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Neste passo a passo, você aprenderá a criar uma janela de ferramenta e integrá-la ao Visual Studio das seguintes maneiras:
Adicione um controle à janela da ferramenta.
Adicione uma barra de ferramentas a uma janela de ferramentas.
Adicione um comando à barra de ferramentas.
Implemente os comandos.
Defina a posição padrão para a janela da ferramenta.
Pré-requisitos
O SDK do Visual Studio está incluído como um recurso opcional na instalação do Visual Studio. Para obter mais informações, consulte instalar o SDK do Visual Studio.
Criar uma janela de ferramenta
Crie um projeto chamado FirstToolWindow usando o modelo VSIX e adicione um modelo de item de janela de ferramenta personalizado chamado FirstToolWindow.
Observação
Para obter mais informações sobre como criar uma extensão com uma janela de ferramenta, consulte Criar uma extensão com uma janela de ferramenta.
Adicionar um controle à janela da ferramenta
Remova o controle padrão. Abra FirstToolWindowControl.xaml e exclua o botão Clique em mim!.
Na Caixa de Ferramentas , expanda a secção Todos os Controles WPF e arraste o controlo Media Element para o formulário FirstToolWindowControl. Selecione o control, e na janela Propriedades, dê a este elemento o nome mediaElement1.
Adicionar uma barra de ferramentas à janela da ferramenta
Ao adicionar uma barra de ferramentas da maneira a seguir, você garante que seus gradientes e cores sejam consistentes com o restante do IDE.
No Gerenciador de Soluções , abra FirstToolWindowPackage.vsct. O arquivo de .vsct define os elementos da interface gráfica do usuário (GUI) na janela da ferramenta usando XML.
Na seção
<Symbols>, localize o nó<GuidSymbol>cujo atributonameéguidFirstToolWindowPackageCmdSet. Adicione os seguintes dois elementos<IDSymbol>à lista de elementos<IDSymbol>neste nó para definir uma barra de ferramentas e um grupo de barras de ferramentas.<IDSymbol name="ToolbarID" value="0x1000" /> <IDSymbol name="ToolbarGroupID" value="0x1001" />Logo acima da seção
<Buttons>, crie uma seção<Menus>semelhante a esta:<Menus> <Menu guid="guidFirstToolWindowPackageCmdSet" id="ToolbarID" priority="0x0000" type="ToolWindowToolbar"> <Parent guid="guidFirstToolWindowPackageCmdSet" id="ToolbarID" /> <Strings> <ButtonText>Tool Window Toolbar</ButtonText> <CommandName>Tool Window Toolbar</CommandName> </Strings> </Menu> </Menus>Existem vários tipos diferentes de menu. Este menu é uma barra de ferramentas em uma janela de ferramenta, definida por seu atributo
type. As configuraçõesguideidcompõem o ID totalmente qualificado da barra de ferramentas. Normalmente, a<Parent>de um menu é o grupo contenedor. No entanto, uma barra de ferramentas é definida como sendo sua própria mãe. Portanto, o mesmo identificador é usado para os elementos<Menu>e<Parent>. O atributopriorityé apenas '0'.As barras de ferramentas assemelham-se a menus de muitas maneiras. Por exemplo, assim como um menu pode ter grupos de comandos, as barras de ferramentas também podem ter grupos. (Nos menus, os grupos de comandos são separados por linhas horizontais. Nas barras de ferramentas, os grupos não são separados por divisores visuais.)
Adicione uma seção
<Groups>que contenha um elemento<Group>. Isso define o grupo cuja ID você declarou na seção<Symbols>. Adicione a seção<Groups>logo após a seção<Menus>.<Groups> <Group guid="guidFirstToolWindowPackageCmdSet" id="ToolbarGroupID" priority="0x0000"> <Parent guid="guidFirstToolWindowPackageCmdSet" id="ToolbarID" /> </Group> </Groups>Ao definir o GUID pai e ID para o GUID e ID da barra de ferramentas, você adiciona o grupo à barra de ferramentas.
Adicionar um comando à barra de ferramentas
Adicione um comando à barra de ferramentas, que é exibido como um botão.
Na seção
<Symbols>, declare os seguintes elementos IDSymbol logo após as declarações da barra de ferramentas e do grupo da barra de ferramentas.<IDSymbol name="cmdidWindowsMedia" value="0x0100" /> <IDSymbol name="cmdidWindowsMediaOpen" value="0x132" />Adicione um elemento Button dentro da seção
<Buttons>. Este elemento aparecerá na barra de ferramentas na janela da ferramenta, com um ícone de pesquisa (lupa) .<Button guid="guidFirstToolWindowPackageCmdSet" id="cmdidWindowsMediaOpen" priority="0x0101" type="Button"> <Parent guid="guidFirstToolWindowPackageCmdSet" id="ToolbarGroupID"/> <Icon guid="guidImages" id="bmpPicSearch" /> <Strings> <CommandName>cmdidWindowsMediaOpen</CommandName> <ButtonText>Load File</ButtonText> </Strings> </Button>Abra FirstToolWindowCommand.cs e adicione as seguintes linhas na classe logo após os campos existentes.
public const string guidFirstToolWindowPackageCmdSet = "00000000-0000-0000-0000-0000"; // get the GUID from the .vsct file public const uint cmdidWindowsMedia = 0x100; public const int cmdidWindowsMediaOpen = 0x132; public const int ToolbarID = 0x1000;Isso torna seus comandos disponíveis em código.
Adicionar uma propriedade MediaPlayer a FirstToolWindowControl
A partir dos manipuladores de eventos para os controles da barra de ferramentas, seu código deve ser capaz de acessar o controle Media Player, que é um filho da classe FirstToolWindowControl.
No Gerenciador de Soluções , clique com o botão direito do mouse FirstToolWindowControl.xaml , clique em View Codee adicione o seguinte código à classe FirstToolWindowControl.
public System.Windows.Controls.MediaElement MediaPlayer
{
get { return mediaElement1; }
}
Instanciar a janela da ferramenta e a barra de ferramentas
Adicione uma barra de ferramentas e um comando de menu que invoque a caixa de diálogo Abrir arquivo e reproduza o arquivo de mídia selecionado.
Abra FirstToolWindow.cs e adicione as seguintes diretivas
using:using System.ComponentModel.Design; using System.Windows.Forms; using Microsoft.VisualStudio.Shell.Interop;Dentro da classe FirstToolWindow, adicione uma referência pública ao controle FirstToolWindowControl.
public FirstToolWindowControl control;No final do construtor, defina essa variável de controle para o controle recém-criado.
control = new FirstToolWindowControl(); base.Content = control;Instancie a barra de ferramentas dentro do construtor.
this.ToolBar = new CommandID(new Guid(FirstToolWindowCommand.guidFirstToolWindowPackageCmdSet), FirstToolWindowCommand.ToolbarID); this.ToolBarLocation = (int)VSTWT_LOCATION.VSTWT_TOP;Neste ponto, o construtor FirstToolWindow deve ter esta aparência:
public FirstToolWindow() : base(null) { this.Caption = "FirstToolWindow"; this.BitmapResourceID = 301; this.BitmapIndex = 1; control = new FirstToolWindowControl(); base.Content = control; this.ToolBar = new CommandID(new Guid(FirstToolWindowCommand.guidFirstToolWindowPackageCmdSet), FirstToolWindowCommand.ToolbarID); this.ToolBarLocation = (int)VSTWT_LOCATION.VSTWT_TOP; }Adicione o comando de menu à barra de ferramentas. Na classe FirstToolWindowCommand.cs, adicione a seguinte diretiva using:
using System.Windows.Forms;Na classe FirstToolWindowCommand, adicione o seguinte código no final do método ShowToolWindow(). O comando ButtonHandler será implementado na próxima seção.
// Create the handles for the toolbar command. var mcs = this.ServiceProvider.GetService(typeof(IMenuCommandService)) as OleMenuCommandService; var toolbarbtnCmdID = new CommandID(new Guid(FirstToolWindowCommand.guidFirstToolWindowPackageCmdSet), FirstToolWindowCommand.cmdidWindowsMediaOpen); var menuItem = new MenuCommand(new EventHandler( ButtonHandler), toolbarbtnCmdID); mcs.AddCommand(menuItem);
Para implementar um comando de menu na janela da ferramenta
Na classe FirstToolWindowCommand, adicione um método ButtonHandler que invoque a caixa de diálogo Open File. Quando um arquivo é selecionado, ele reproduz o arquivo de mídia.
Na classe FirstToolWindowCommand, adicione uma referência privada à janela FirstToolWindow que é criada no método FindToolWindow().
private FirstToolWindow window;Altere o método ShowToolWindow() para definir a janela definida acima (para que o manipulador de comando ButtonHandler possa acessar o controle de janela. Aqui está o método ShowToolWindow() completo.
private void ShowToolWindow(object sender, EventArgs e) { window = (FirstToolWindow) this.package.FindToolWindow(typeof(FirstToolWindow), 0, true); if ((null == window) || (null == window.Frame)) { throw new NotSupportedException("Cannot create tool window"); } IVsWindowFrame windowFrame = (IVsWindowFrame)window.Frame; Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(windowFrame.Show()); var mcs = this.ServiceProvider.GetService(typeof(IMenuCommandService)) as OleMenuCommandService; var toolbarbtnCmdID = new CommandID(new Guid(FirstToolWindowCommandguidFirstToolWindowPackageCmdSet), FirstToolWindowCommand.cmdidWindowsMediaOpen); var menuItem = new MenuCommand(new EventHandler( ButtonHandler), toolbarbtnCmdID); mcs.AddCommand(menuItem); }Adicione o método ButtonHandler. Ele cria um OpenFileDialog para o usuário especificar o arquivo de mídia a ser reproduzido e, em seguida, reproduz o arquivo selecionado.
private void ButtonHandler(object sender, EventArgs arguments) { OpenFileDialog openFileDialog = new OpenFileDialog(); DialogResult result = openFileDialog.ShowDialog(); if (result == DialogResult.OK) { window.control.MediaPlayer.Source = new System.Uri(openFileDialog.FileName); } }
Definir a posição padrão para a janela da ferramenta
Em seguida, especifique um local padrão no IDE para a janela da ferramenta. As informações de configuração para a janela da ferramenta estão no arquivo FirstToolWindowPackage.cs.
Em FirstToolWindowPackage.cs, localize o atributo ProvideToolWindowAttribute na classe
FirstToolWindowPackage, que passa o tipo FirstToolWindow para o construtor. Para especificar uma posição padrão, deve adicionar mais parâmetros ao construtor, conforme o exemplo a seguir.[ProvideToolWindow(typeof(FirstToolWindow), Style = Microsoft.VisualStudio.Shell.VsDockStyle.Tabbed, Window = "3ae79031-e1bc-11d0-8f78-00a0c9110057")]O primeiro parâmetro nomeado é
Stylee seu valor éTabbed, o que significa que a janela será uma guia em uma janela existente. A posição de encaixe é especificada pelo parâmetroWindow, neste caso, o GUID do Solution Explorer.Observação
Para obter mais informações sobre os tipos de janelas no IDE, consulte vsWindowType.
Testar a janela da ferramenta
Pressione F5 para abrir uma nova instância da compilação experimental do Visual Studio.
No menu Exibir, aponte para Outras Janelas e clique em Primeira Janela de Ferramentas.
A janela da ferramenta media player deve abrir na mesma posição que Explorador de Soluções. Se ele ainda aparecer na mesma posição que antes, redefina o layout da janela (Window / Reset Window Layout).
Clique no botão (que tem o ícone Pesquisar ) na janela da ferramenta. Selecione um ficheiro de som ou vídeo suportado, por exemplo, C:\windows\media\chimes.wave, em seguida, prima Abrir.
Você deve ouvir o som do toque.