Condividi tramite


Aggiungere una finestra degli strumenti

Questa procedura dettagliata illustra come creare una finestra degli strumenti e integrarla in Visual Studio nei modi seguenti:

  • Aggiungere un controllo alla finestra degli strumenti.

  • Aggiungere una barra degli strumenti a una finestra degli strumenti.

  • Aggiungere un comando alla barra degli strumenti.

  • Esegui i comandi.

  • Impostare la posizione predefinita per la finestra degli strumenti.

Prerequisiti

Visual Studio SDK è incluso come funzionalità facoltativa nell'installazione di Visual Studio. Per altre informazioni, vedere Installare Visual Studio SDK.

Creare una finestra degli strumenti

  1. Creare un progetto denominato FirstToolWindow usando il modello VSIX e aggiungere un modello di elemento della finestra degli strumenti personalizzato denominato FirstToolWindow.

    Nota

    Per altre informazioni sulla creazione di un'estensione con una finestra degli strumenti, vedere Creare un'estensione con una finestra degli strumenti.

Aggiungere un controllo alla finestra degli strumenti

  1. Rimuovere il controllo predefinito. Aprire FirstToolWindowControl.xaml ed eliminare il pulsante Cliccami!.

  2. Nella casella degli strumenti , espandere la sezione Tutti i controlli WPF e trascinare il controllo Media Element sul modulo FirstToolWindowControl. Selezionare il controllo e nella finestra Proprietà denominare questo elemento mediaElement1.

Aggiungere una barra degli strumenti alla finestra degli strumenti

Aggiungendo una barra degli strumenti nel modo seguente, si garantisce che le sfumature e i colori siano coerenti con il resto dell'IDE.

  1. In Esplora soluzioni , apri FirstToolWindowPackage.vsct. Il file .vsct definisce gli elementi dell'interfaccia grafica utente (GUI) nella finestra degli strumenti utilizzando XML.

  2. Nella sezione <Symbols> trovare il nodo <GuidSymbol> il cui attributo name è guidFirstToolWindowPackageCmdSet. Aggiungere i due elementi <IDSymbol> seguenti all'elenco di elementi <IDSymbol> in questo nodo per definire una barra degli strumenti e un gruppo di barre degli strumenti.

    <IDSymbol name="ToolbarID" value="0x1000" />
    <IDSymbol name="ToolbarGroupID" value="0x1001" />
    
  3. Appena sopra la sezione <Buttons> creare una sezione <Menus> simile alla seguente:

    <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>
    

    Ci sono diversi tipi di menu. Questo menu è una barra degli strumenti in una finestra degli strumenti, definita dal relativo attributo type. Le impostazioni guid e id costituiscono l'ID completo della barra degli strumenti. In genere, il <Parent> di un menu è il gruppo contenitore. Tuttavia, una barra degli strumenti è definita come il proprio genitore. Pertanto, lo stesso identificatore viene usato per gli elementi <Menu> e <Parent>. L'attributo priority è solo '0'.

  4. Le barre degli strumenti sono simili ai menu in molti modi. Ad esempio, proprio come un menu può avere gruppi di comandi, le barre degli strumenti possono avere anche gruppi. Nei menu i gruppi di comandi sono separati da linee orizzontali. Sulle barre degli strumenti, i gruppi non sono separati dai divisori visivi.

    Aggiungere una sezione <Groups> che contiene un elemento <Group>. Definisce il gruppo il cui ID è stato dichiarato nella sezione <Symbols>. Aggiungere la sezione <Groups> subito dopo la sezione <Menus>.

    <Groups>
        <Group guid="guidFirstToolWindowPackageCmdSet" id="ToolbarGroupID" priority="0x0000">
            <Parent guid="guidFirstToolWindowPackageCmdSet" id="ToolbarID" />
        </Group>
    </Groups>
    

    Impostando il GUID padre e l'ID sul GUID e l'ID della barra degli strumenti, aggiungere il gruppo alla barra degli strumenti.

Aggiungere un comando alla barra degli strumenti

Aggiungere un comando alla barra degli strumenti, che viene visualizzato come pulsante.

  1. Nella sezione <Symbols>, dichiarate i seguenti elementi IDSymbol subito dopo le dichiarazioni della barra degli strumenti e del gruppo della barra degli strumenti.

    <IDSymbol name="cmdidWindowsMedia" value="0x0100" />
    <IDSymbol name="cmdidWindowsMediaOpen" value="0x132" />
    
  2. Aggiungere un elemento Button all'interno della sezione <Buttons>. Questo elemento verrà visualizzato sulla barra degli strumenti nella finestra degli strumenti, con un'icona Cerca (lente di ingrandimento).

    <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>
    
  3. Aprire FirstToolWindowCommand.cs e aggiungere le righe seguenti nella classe subito dopo i campi esistenti.

    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;
    

    In questo modo i comandi vengono resi disponibili nel codice.

Aggiungere una proprietà MediaPlayer a FirstToolWindowControl

Dai gestori eventi per i controlli della barra degli strumenti, il codice deve essere in grado di accedere al controllo Media Player, che è un elemento figlio della classe FirstToolWindowControl.

In Esplora soluzionifare clic con il pulsante destro del mouse su FirstToolWindowControl.xaml, scegliere Visualizza codicee aggiungere il codice seguente alla classe FirstToolWindowControl.

public System.Windows.Controls.MediaElement MediaPlayer
{
    get { return mediaElement1; }
}

Instanziare la finestra degli strumenti e la barra degli strumenti

Aggiungere una barra degli strumenti e un comando di menu che richiama il finestra di dialogo Apri file e riproduce il file multimediale selezionato.

  1. Aprire FirstToolWindow.cs e aggiungere le direttive di using seguenti:

    using System.ComponentModel.Design;
    using System.Windows.Forms;
    using Microsoft.VisualStudio.Shell.Interop;
    
  2. All'interno della classe FirstToolWindow aggiungere un riferimento pubblico al controllo FirstToolWindowControl.

    public FirstToolWindowControl control;
    
  3. Alla fine del costruttore, imposta questa variabile di controllo sul nuovo controllo creato.

    control = new FirstToolWindowControl();
    base.Content = control;
    
  4. Creare un'istanza della barra degli strumenti all'interno del costruttore.

    this.ToolBar = new CommandID(new Guid(FirstToolWindowCommand.guidFirstToolWindowPackageCmdSet),
        FirstToolWindowCommand.ToolbarID);
    this.ToolBarLocation = (int)VSTWT_LOCATION.VSTWT_TOP;
    
  5. A questo punto, il costruttore FirstToolWindow dovrebbe apparire simile a questo:

    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;
    }
    
  6. Aggiungere il comando di menu alla barra degli strumenti. Nella classe FirstToolWindowCommand.cs, aggiungere seguente la direttiva using:

    using System.Windows.Forms;
    
  7. Nella classe FirstToolWindowCommand aggiungere il codice seguente alla fine del metodo ShowToolWindow(). Il comando ButtonHandler verrà implementato nella sezione successiva.

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

Per implementare un comando di menu nella finestra degli strumenti

  1. Nella classe FirstToolWindowCommand aggiungere un metodo ButtonHandler che richiama la finestra di dialogo Apri file. Quando un file è stato selezionato, il sistema riproduce il file multimediale.

  2. Nella classe FirstToolWindowCommand aggiungere un riferimento privato alla finestra FirstToolWindow creata nel metodo FindToolWindow().

    private FirstToolWindow window;
    
  3. Modificare il metodo ShowToolWindow() per impostare la finestra definita in precedenza in modo che il gestore dei comandi ButtonHandler possa accedere al controllo finestra. Ecco il metodo 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);
    }
    
  4. Aggiungere il metodo ButtonHandler. Crea un oggetto OpenFileDialog per consentire all'utente di specificare il file multimediale da riprodurre e quindi di riprodurre il file selezionato.

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

Impostare la posizione predefinita per la finestra degli strumenti

Specificare quindi un percorso predefinito nell'IDE per la finestra degli strumenti. Le informazioni di configurazione per la finestra degli strumenti si trovano nel file FirstToolWindowPackage.cs.

  1. In FirstToolWindowPackage.cstrovare l'attributo ProvideToolWindowAttribute nella classe FirstToolWindowPackage, che passa il tipo FirstToolWindow al costruttore. Per specificare una posizione predefinita, è necessario aggiungere altri parametri all'esempio seguente.

    [ProvideToolWindow(typeof(FirstToolWindow),
        Style = Microsoft.VisualStudio.Shell.VsDockStyle.Tabbed,
        Window = "3ae79031-e1bc-11d0-8f78-00a0c9110057")]
    

    Il primo parametro denominato è Style e il relativo valore è Tabbed, il che significa che la finestra sarà una scheda in una finestra esistente. La posizione di ancoraggio viene specificata dal parametro Window, in questo caso, il GUID dell'Esplora Soluzioni.

    Nota

    Per altre informazioni sui tipi di finestre nell'IDE, vedere vsWindowType.

Testare la finestra degli strumenti

  1. Premere F5 per aprire una nuova istanza della build sperimentale di Visual Studio.

  2. Nel menu Visualizza, scegliere Altre finestre e quindi fare clic su Prima finestra degli strumenti.

    La finestra dello strumento lettore multimediale dovrebbe aprirsi nella stessa posizione di Esplora Soluzioni . Se viene ancora visualizzato nella stessa posizione di prima, reimpostare il layout della finestra (Finestra / Reimposta layout finestra).

  3. Fare clic sul pulsante (ha l'icona Cerca) nella finestra degli strumenti. Selezionare un file audio o video supportato, ad esempio C:\windows\media\chimes.wav, quindi premere Apri.

    Dovresti sentire il suono del chime.