Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Popup Konteks adalah kontrol utama dalam Tampilan ContextPopup kerangka kerja Pita Windows. Ini adalah sistem menu konteks kaya yang hanya diekspos oleh kerangka kerja sebagai ekstensi untuk implementasi Pita—kerangka kerja tidak mengekspos Popup Konteks sebagai kontrol independen.
- Komponen Popup Konteks
- Terapkan Popup Konteks
- Properti Popup Konteks
- Topik terkait
Komponen Popup Konteks
Popup Konteks adalah kontainer logis untuk Menu Konteks dan sub-kontrol Mini-Toolbar yang diekspos melaluiContextMenu dan elemen markupMiniToolbar, masing-masing:
- ContextMenu mengekspos menu Perintah dan galeri.
- MiniToolbarmemaparkan toolbar mengambang dari berbagai Perintah, galeri, dan kontrol kompleks seperti Kontrol Font dan Kotak Kombo.
Setiap sub-kontrol dapat muncul paling banyak sekali dalam Popup Konteks.
Cuplikan layar berikut mengilustrasikan Popup Konteks dan subkontrol konstituennya.
Popup Konteks murni konseptual dan tidak mengekspos fungsionalitas UI itu sendiri, seperti penempatan atau ukuran.
Nota
Popup Konteks biasanya ditampilkan dengan mengklik kanan mouse (atau melalui pintasan keyboard SHIFT+F10) pada objek yang menarik. Namun, langkah-langkah yang diperlukan untuk menampilkan Popup Konteks ditentukan oleh aplikasi.
Menerapkan Popup Konteks
Dengan cara yang sama dengan kontrol kerangka kerja Windows Ribbon lainnya, Popup Konteks diimplementasikan melalui komponen markup yang menentukan detail presentasinya dan komponen kode yang mengatur fungsionalitasnya.
Tabel berikut mencantumkan kontrol yang didukung oleh setiap sub-kontrol Popup Konteks.
| Menguasai | Mini-Toolbar | Menu Konteks |
|---|---|---|
| Tombol | x | x |
| Kotak Centang | x | x |
| Combo Box | x | |
| TombolDrop-Down | x | x |
| Pemilih WarnaDrop-Down | x | x |
| GaleriDrop-Down | x | x |
| Kontrol Font | x | |
| Tombol Bantuan | ||
| GaleriIn-Ribbon | ||
| Spinner | ||
| Tombol Pisahkan | x | x |
| Split Button Gallery | x | x |
| Tombol Alihkan | x | x |
Markup
Setiap sub-kontrol Popup Konteks harus dideklarasikan satu per satu dalam markup.
Mini-Toolbar
Saat menambahkan kontrol ke Toolbar Mini Popup Konteks, dua rekomendasi berikut harus dipertimbangkan:
- Kontrol harus sangat dikenali dan memberikan fungsionalitas yang jelas. Keakraban adalah kunci, karena label dan tipsalat tidak diekspos untuk kontrol Mini-Toolbar.
- Setiap Perintah yang diekspos oleh kontrol harus disajikan di tempat lain di UI pita. Mini-Toolbar tidak mendukung navigasi keyboard.
Contoh berikut menunjukkan markup dasar untuk elemenMiniToolbar yang berisi tiga kontrol Tombol.
Nota
Satu elemenMenuGroupditentukan untuk setiap baris kontrol di Toolbar Mini.
<MiniToolbar Name="MiniToolbar">
<MenuGroup>
<Button CommandName="cmdButton1" />
<Button CommandName="cmdButton2" />
<Button CommandName="cmdButton3" />
</MenuGroup>
</MiniToolbar>
Menu Konteks
Contoh berikut menunjukkan markup dasar untuk elemenContextMenu yang berisi tiga kontrol Tombol.
<ContextMenu Name="ContextMenu">
<MenuGroup>
<Button CommandName="cmdCut" />
<Button CommandName="cmdCopy" />
<Button CommandName="cmdPaste" />
</MenuGroup>
</ContextMenu>
Meskipun Popup Konteks dapat berisi paling banyak salah satu dari setiap sub-kontrol, beberapa ContextMenu dan MiniToolbar deklarasi elemen dalam markup Pita valid. Ini memungkinkan aplikasi untuk mendukung berbagai kombinasi Menu Konteks dan kontrol Mini-Toolbar, berdasarkan kriteria yang ditentukan oleh aplikasi, seperti konteks ruang kerja.
Untuk informasi selengkapnya, lihat elemenContextMap.
Contoh berikut menunjukkan markup dasar untuk elemen ContextPopup.
<ContextPopup>
<ContextPopup.MiniToolbars>
<MiniToolbar Name="MiniToolbar">
<MenuGroup>
<Button CommandName="cmdButton1" />
<Button CommandName="cmdButton2" />
<Button CommandName="cmdButton3" />
</MenuGroup>
</MiniToolbar>
</ContextPopup.MiniToolbars>
<ContextPopup.ContextMenus>
<ContextMenu Name="ContextMenu">
<MenuGroup>
<Button CommandName="cmdCut" />
<Button CommandName="cmdCopy" />
<Button CommandName="cmdPaste" />
</MenuGroup>
</ContextMenu>
</ContextPopup.ContextMenus>
<ContextPopup.ContextMaps>
<ContextMap CommandName="cmdContextMap" ContextMenu="ContextMenu" MiniToolbar="MiniToolbar"/>
</ContextPopup.ContextMaps>
</ContextPopup>
Kode
Untuk memanggil Popup Konteks, metode IUIContextualUI::ShowAtLocation dipanggil saat jendela tingkat atas aplikasi Pita menerima pemberitahuan WM_CONTEXTMENU.
Contoh ini menunjukkan cara menangani pemberitahuan WM_CONTEXTMENU dalam metode WndProc() aplikasi Pita.
case WM_CONTEXTMENU:
POINT pt;
POINTSTOPOINT(pt, lParam);
// ShowContextualUI method defined by the application.
ShowContextualUI (pt, hWnd);
break;
Contoh berikut menunjukkan bagaimana aplikasi Pita dapat memperlihatkan Popup Konteks di lokasi layar tertentu menggunakan metode IUIContextualUI::ShowAtLocation.
GetCurrentContext() memiliki nilai cmdContextMap seperti yang didefinisikan dalam contoh markup sebelumnya.
g_pApplication adalah referensi ke antarmukaIUIFramework.
HRESULT ShowContextualUI(POINT& ptLocation, HWND hWnd)
{
GetDisplayLocation(ptLocation, hWnd);
HRESULT hr = E_FAIL;
IUIContextualUI* pContextualUI = NULL;
if (SUCCEEDED(g_pFramework->GetView(
g_pApplication->GetCurrentContext(),
IID_PPV_ARGS(&pContextualUI))))
{
hr = pContextualUI->ShowAtLocation(ptLocation.x, ptLocation.y);
pContextualUI->Release();
}
return hr;
}
Referensi keIUIContextualUI dapat dirilis sebelum Popup Konteks dihentikan, seperti yang ditunjukkan pada contoh sebelumnya. Namun, referensi harus dirilis pada titik tertentu untuk menghindari kebocoran memori.
Hati
Mini-Toolbar memiliki efek pudar bawaan yang didasarkan pada kedekatan penunjuk mouse. Untuk alasan ini, disarankan agar Mini-Toolbar ditampilkan sedekat mungkin dengan penunjuk mouse. Jika tidak, karena mekanisme tampilan yang bertentangan, Mini-Toolbar mungkin tidak merender seperti yang diharapkan.
Properti Popup Konteks
Tidak ada kunci properti yang terkait dengan kontrol Popup Konteks.
Topik terkait
-
Sampel ContextPopup