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.

  • Implementare 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 FirstToolWin 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 Click Me! .

  2. Nella casella degli strumenti espandere la sezione Tutti i controlli WPF e trascinare il controllo Elemento multimediale nel form 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 aprire FirstToolWindowPackage.vsct. Il file con estensione vsct definisce gli elementi dell'interfaccia utente grafica (GUI) nella finestra degli strumenti tramite XML.

  2. <Symbols> Nella sezione trovare il nodo il <GuidSymbol> cui name attributo è guidFirstToolWindowPackageCmdSet. Aggiungere i due <IDSymbol> elementi seguenti all'elenco di <IDSymbol> elementi 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 <Buttons> sezione creare una <Menus> sezione 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 type attributo. Le guid impostazioni e id costituiscono l'ID completo della barra degli strumenti. In genere, l'oggetto <Parent> di un menu è il gruppo contenitore. Tuttavia, una barra degli strumenti è definita come padre. Pertanto, lo stesso identificatore viene usato per gli <Menu> elementi 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 <Groups> sezione contenente un <Group> elemento . Definisce il gruppo il cui ID è stato dichiarato nella <Symbols> sezione . Aggiungere la <Groups> sezione subito dopo la <Menus> sezione .

    <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. <Symbols> Nella sezione dichiarare gli elementi IDSymbol seguenti subito dopo le dichiarazioni di gruppo della barra degli strumenti e degli strumenti.

    <IDSymbol name="cmdidWindowsMedia" value="0x0100" />
    <IDSymbol name="cmdidWindowsMediaOpen" value="0x132" />
    
  2. Aggiungere un elemento Button all'interno della <Buttons> sezione . Questo elemento verrà visualizzato sulla barra degli strumenti nella finestra degli strumenti, con un'icona Di ricerca (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 Lettore multimediale, che è un elemento figlio della classe FirstToolWindowControl.

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

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

Creare un'istanza della finestra degli strumenti e della barra degli strumenti

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

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

    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 impostare questa variabile di controllo sul controllo appena 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 essere simile al seguente:

    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 la direttiva using seguente:

    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, 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.cs trovare l'attributo ProvideToolWindowAttribute nella FirstToolWindowPackage classe , che passa il tipo FirstToolWindow al costruttore. Per specificare una posizione predefinita, è necessario aggiungere altri parametri al costruttore 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 Window parametro, n questo caso, il GUID del 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 compilazione sperimentale di Visual Studio.

  2. Scegliere Altre finestre dal menu Visualizza e quindi fare clic su Prima finestra degli strumenti.

    La finestra degli strumenti del lettore multimediale deve essere aperta 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 (con 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.