Bagikan melalui


Menampilkan pemberitahuan di ekstensi Visual Studio

Ada beberapa mekanisme untuk menampilkan pemberitahuan kepada pengguna ekstensi Anda. Memilih yang tepat bisa menjadi tantangan, jadi mari kita lihat opsinya.

  • Bilah status
  • Bilah info
  • Kotak pesan
  • Jendela output

Mereka digunakan untuk tujuan yang berbeda dan memiliki tingkat permintaan yang berbeda pada perhatian pengguna.

Gunakan bilah status untuk memberi tahu pengguna tentang peristiwa yang tidak memerlukan tindakan atau input apa pun dari pengguna. Jika mereka melewatkan pemberitahuan di bilah status, maka tidak apa-apa - tidak penting bagi mereka untuk melihatnya.

Jika Anda ingin menarik perhatian pengguna dan menyajikannya dengan beberapa tindakan yang harus mereka ambil, gunakan bilah info. Mereka tidak perlu segera melakukannya, mereka dapat menunggu sampai mereka selesai dengan apa yang mereka lakukan. Pemberitahuan ini penting, tetapi tidak penting.

Ketika pemberitahuan harus memblokir pengguna saat ini untuk melanjutkan apa yang mereka lakukan, gunakan kotak pesan. Ini adalah pemberitahuan pemblokiran dan kritis.

Untuk memberi tahu pengguna tentang kesalahan non-kritis, gunakan Jendela Output. Anda dapat membawa fokus ke Jendela Output jika Anda ingin memastikan pengguna melihatnya, tetapi disarankan agar Anda tidak melakukannya.

Bilah status

Bilah status adalah area di bagian bawah jendela utama yang menampilkan informasi tentang status jendela saat ini (seperti apa yang sedang dilihat dan bagaimana), tugas latar belakang (seperti pencetakan, pemindaian, dan pemformatan), atau informasi kontekstual lainnya (seperti pilihan dan status keyboard).

Status bar showing custom text.

Gunakan bilah status saat Anda tidak perlu memperhatikan sepenuhnya pengguna, tetapi masih memberi mereka informasi.

Mengatur teks

Ini akan mengatur teks di bilah status ke string apa pun.

// call it from an async context
await VS.StatusBar.ShowMessageAsync("My text");

// or from a synchronous method:
VS.StatusBar.ShowMessageAsync("My text").FireAndForget();

Ikon animasi

Menambahkan ikon animasi ke bilah status itu mudah.

Status bar animating using the StatusAnimation.Sync icon.

Cukup tentukan ikon animasi mana yang akan digunakan.

// call it from an async context
await VS.StatusBar.StartAnimationAsync(StatusAnimation.Sync);

// or from a synchronous method:
VS.StatusBar.StartAnimationAsync(StatusAnimation.Sync).FireAndForget();

Hentikan animasi lagi dengan memanggil EndStatusbarAnimationAsync.

// call it from an async context
await VS.StatusBar.EndAnimationAsync(StatusAnimation.Sync);

// or from a synchronous method:
VS.StatusBar.EndAnimationAsync(StatusAnimation.Sync).FireAndForget();

Bilah info

Bilah Info adalah bilah kuning di bagian atas jendela alat atau dokumen. Ini berguna untuk menarik perhatian pengguna tanpa memblokirnya. Bilah Info bisa berisi ikon, teks, dan beberapa hyperlink.

An Info Bar showing in Solution Explorer.

Berikut cara menambahkan Bilah Info ke jendela alat Penjelajah Solusi.

var model = new InfoBarModel(
    new[] {
        new InfoBarTextSpan("The text in the Info Bar. "),
        new InfoBarHyperlink("Click me")
    },
    KnownMonikers.PlayStepGroup,
    true);

InfoBar infoBar = VS.InfoBar.CreateInfoBar(ToolWindowGuids80.SolutionExplorer, model);
infoBar.ActionItemClicked += InfoBar_ActionItemClicked;
await infoBar.TryShowInfoBarUIAsync();

...

private void InfoBar_ActionItemClicked(object sender, InfoBarActionItemEventArgs e)
{
    ThreadHelper.ThrowIfNotOnUIThread();

    if (e.ActionItem.Text == "Click me")
    {
        // do something
    }
}

Untuk menambahkan Bilah Info ke jendela dokumen, cukup teruskan nama file dokumen yang terbuka ke VS.Notifications.CreateInfoBar(fileName, model) metode .

An Info Bar showing at the top of a document.

Jika Anda ingin ke Bilah Info langsung ke ITextView, maka Anda dapat melakukannya dengan metode ekstensi yang berguna ini:

InfoBar infoBar = textView.CreateInfoBar(model);

Kotak pesan

Ada berbagai cara untuk memperlihatkan kotak pesan menggunakan .NET. Misalnya melalui Formulir Windows atau WPF. Mereka menyebabkan beberapa masalah di ekstensi Visual Studio dengan mengasuh dengan benar terhadap jendela utama, jadi disarankan untuk menggunakan kotak pesan Visual Studio sendiri.

Native Visual Studio message box.

Gunakan kotak pesan saat Anda perlu memblokir UI untuk mendapatkan perhatian penuh pengguna.

// Simple text box
VS.MessageBox.Show("Title", "The message");

// Async and with buttons defined
await VS.MessageBox.ShowAsync("Title", "The message", OLEMSGICON.OLEMSGICON_INFO, OLEMSGBUTTON.OLEMSGBUTTON_OKCANCEL);   

Jendela output

Gunakan Jendela Output untuk menampilkan informasi tentang pengecualian dan informasi tekstual lainnya.

Text written to custom Output Window pane.

Membuat panel Jendela Output kustom dan menulisnya langsung ke depan saat menggunakan VS.Windows.CreateOutputWindowPaneAsync metode .

OutputWindowPane pane = await VS.Windows.CreateOutputWindowPaneAsync("Name of pane");
await pane.WriteLineAsync("Line 1");
await pane.WriteLineAsync("Line 2");
await pane.WriteLineAsync("Line 3");

Lihat Resep penanganan kesalahan untuk informasi selengkapnya tentang pengecualian pengelogan.