Bagikan melalui


Menambahkan jendela alat

Dalam panduan ini, Anda mempelajari cara membuat jendela alat dan mengintegrasikannya ke Visual Studio dengan cara berikut:

  • Tambahkan kontrol ke jendela alat.

  • Tambahkan bilah alat ke jendela alat.

  • Tambahkan perintah ke toolbar.

  • Terapkan perintah.

  • Atur posisi default untuk jendela alat.

Prasyarat

Visual Studio SDK disertakan sebagai fitur opsional dalam penyiapan Visual Studio. Untuk informasi selengkapnya, lihat Menginstal Visual Studio SDK.

Membuat jendela alat

  1. Buat proyek bernama FirstToolWin menggunakan templat VSIX, dan tambahkan templat item jendela alat kustom bernama FirstToolWindow.

    Catatan

    Untuk informasi selengkapnya tentang membuat ekstensi dengan jendela alat, lihat Membuat ekstensi dengan jendela alat.

Menambahkan kontrol ke jendela alat

  1. Hapus kontrol default. Buka FirstToolWindowControl.xaml dan hapus tombol Klik Saya! .

  2. Di Kotak Alat, perluas bagian Semua Kontrol WPF dan seret kontrol Elemen Media ke formulir FirstToolWindowControl. Pilih kontrol, dan di jendela Properti , beri nama elemen ini mediaElement1.

Menambahkan toolbar ke jendela alat

Dengan menambahkan toolbar dengan cara berikut, Anda menjamin bahwa gradien dan warnanya konsisten dengan IDE lainnya.

  1. Di Penjelajah Solusi, buka FirstToolWindowPackage.vsct. File .vsct menentukan elemen antarmuka pengguna grafis (GUI) di jendela alat Anda dengan menggunakan XML.

  2. Di bagian , <Symbols> temukan simpul <GuidSymbol> yang atributnya name adalah guidFirstToolWindowPackageCmdSet. Tambahkan dua <IDSymbol> elemen berikut ke daftar <IDSymbol> elemen dalam simpul ini untuk menentukan toolbar dan grup toolbar.

    <IDSymbol name="ToolbarID" value="0x1000" />
    <IDSymbol name="ToolbarGroupID" value="0x1001" />
    
  3. Tepat di atas bagian <Buttons> , buat <Menus> bagian yang menyerupan ini:

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

    Ada beberapa jenis menu yang berbeda. Menu ini adalah toolbar di jendela alat, yang ditentukan oleh atributnya type . Pengaturan guid dan id membentuk ID toolbar yang sepenuhnya memenuhi syarat. Biasanya, <Parent> menu adalah grup yang berisi. Namun, toolbar didefinisikan sebagai induknya sendiri. Oleh karena itu, pengidentifikasi yang sama digunakan untuk <Menu> elemen dan <Parent> . Atributnya priority hanya '0'.

  4. Bilah alat menyerupai menu dalam banyak cara. Misalnya, sama seperti menu yang mungkin memiliki grup perintah, toolbar mungkin juga memiliki grup. (Pada menu, grup perintah dipisahkan oleh garis horizontal. Pada toolbar, grup tidak dipisahkan oleh pembagi visual.)

    <Groups> Tambahkan bagian yang berisi <Group> elemen. Ini menentukan grup yang ID-nya Anda deklarasikan di bagian .<Symbols> Tambahkan bagian <Groups> tepat setelah bagian <Menus> .

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

    Dengan mengatur GUID dan ID induk ke GUID dan ID toolbar, Anda menambahkan grup ke toolbar.

Menambahkan perintah ke toolbar

Tambahkan perintah ke toolbar, yang ditampilkan sebagai tombol.

  1. Di bagian , <Symbols> deklarasikan elemen IDSymbol berikut tepat setelah deklarasi toolbar dan grup toolbar.

    <IDSymbol name="cmdidWindowsMedia" value="0x0100" />
    <IDSymbol name="cmdidWindowsMediaOpen" value="0x132" />
    
  2. Tambahkan elemen Tombol di dalam bagian <Buttons> . Elemen ini akan muncul pada toolbar di jendela alat, dengan ikon Cari (kaca pembesar).

    <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. Buka FirstToolWindowCommand.cs dan tambahkan baris berikut di kelas tepat setelah bidang yang ada.

    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;
    

    Melakukan ini membuat perintah Anda tersedia dalam kode.

Menambahkan properti MediaPlayer ke FirstToolWindowControl

Dari penanganan aktivitas untuk kontrol toolbar, kode Anda harus dapat mengakses kontrol Pemutar Media, yang merupakan anak dari kelas FirstToolWindowControl.

Di Penjelajah Solusi, klik kanan FirstToolWindowControl.xaml, klik Tampilkan Kode, dan tambahkan kode berikut ke kelas FirstToolWindowControl.

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

Membuat instans jendela alat dan toolbar

Tambahkan bilah alat dan perintah menu yang memanggil dialog Buka File dan memutar file media yang dipilih.

  1. Buka FirstToolWindow.cs dan tambahkan direktif berikut using :

    using System.ComponentModel.Design;
    using System.Windows.Forms;
    using Microsoft.VisualStudio.Shell.Interop;
    
  2. Di dalam kelas FirstToolWindow, tambahkan referensi publik ke kontrol FirstToolWindowControl.

    public FirstToolWindowControl control;
    
  3. Di akhir konstruktor, atur variabel kontrol ini ke kontrol yang baru dibuat.

    control = new FirstToolWindowControl();
    base.Content = control;
    
  4. Buat instans toolbar di dalam konstruktor.

    this.ToolBar = new CommandID(new Guid(FirstToolWindowCommand.guidFirstToolWindowPackageCmdSet),
        FirstToolWindowCommand.ToolbarID);
    this.ToolBarLocation = (int)VSTWT_LOCATION.VSTWT_TOP;
    
  5. Pada titik ini, konstruktor FirstToolWindow akan terlihat seperti ini:

    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. Tambahkan perintah menu ke toolbar. Di kelas FirstToolWindowCommand.cs, tambahkan hal berikut menggunakan direktif:

    using System.Windows.Forms;
    
  7. Di kelas FirstToolWindowCommand, tambahkan kode berikut di akhir metode ShowToolWindow(). Perintah ButtonHandler akan diimplementasikan di bagian berikutnya.

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

Untuk menerapkan perintah menu di jendela alat

  1. Di kelas FirstToolWindowCommand, tambahkan metode ButtonHandler yang memanggil dialog Buka File . Ketika file telah dipilih, file media akan diputar.

  2. Di kelas FirstToolWindowCommand, tambahkan referensi privat ke jendela FirstToolWindow yang dibuat dalam metode FindToolWindow().

    private FirstToolWindow window;
    
  3. Ubah metode ShowToolWindow() untuk mengatur jendela yang Anda tentukan di atas (sehingga handler perintah ButtonHandler dapat mengakses kontrol jendela. Berikut adalah metode ShowToolWindow() lengkap.

    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. Tambahkan metode ButtonHandler. Ini membuat OpenFileDialog bagi pengguna untuk menentukan file media yang akan diputar, lalu memutar file yang dipilih.

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

Mengatur posisi default untuk jendela alat

Selanjutnya, tentukan lokasi default di IDE untuk jendela alat. Informasi konfigurasi untuk jendela alat ada di file FirstToolWindowPackage.cs .

  1. Di FirstToolWindowPackage.cs, temukan ProvideToolWindowAttribute atribut di FirstToolWindowPackage kelas , yang meneruskan jenis FirstToolWindow ke konstruktor. Untuk menentukan posisi default, Anda harus menambahkan lebih banyak parameter ke contoh berikut konstruktor.

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

    Parameter bernama pertama adalah Style dan nilainya adalah Tabbed, yang berarti bahwa jendela akan menjadi tab di jendela yang ada. Posisi docking ditentukan oleh Window parameter, n kasus ini, GUID Penjelajah Solusi.

    Catatan

    Untuk informasi selengkapnya tentang jenis jendela di IDE, lihat vsWindowType.

Menguji jendela alat

  1. Tekan F5 untuk membuka instans baru build eksperimental Visual Studio.

  2. Pada menu Tampilan, arahkan ke Windows Lain lalu klik Jendela Alat Pertama.

    Jendela alat pemutar media harus terbuka dalam posisi yang sama dengan Penjelajah Solusi. Jika masih muncul di posisi yang sama seperti sebelumnya, reset tata letak jendela (Window/Reset Window Layout).

  3. Klik tombol (memiliki ikon Pencarian ) di jendela alat. Pilih file suara atau video yang didukung, misalnya, C:\windows\media\chimes.wav, lalu tekan Buka.

    Anda harus mendengar suara lonceng.