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.
Bantu pengguna Anda menjadi lebih produktif dengan memungkinkan mereka melihat bagian independen aplikasi Anda di jendela terpisah. Saat Anda membuat beberapa jendela untuk aplikasi, setiap jendela bertindak secara independen. Bilah tugas memperlihatkan setiap jendela secara terpisah. Pengguna dapat memindahkan, mengubah ukuran, menampilkan, dan menyembunyikan jendela aplikasi secara independen dan dapat beralih di antara jendela aplikasi seolah-olah mereka adalah aplikasi terpisah. Setiap jendela beroperasi di utasnya sendiri.
API Penting
: , ApplicationViewSwitcher CreateNewView
Apa itu pandangan?
Tampilan aplikasi adalah penggabungan 1:1 antara utas dan jendela yang digunakan aplikasi untuk menampilkan konten. Ini diwakili oleh objek Windows.ApplicationModel.Core.CoreApplicationView.
Tampilan dikelola oleh objek CoreApplication
Anda biasanya tidak bekerja langsung dengan CoreApplicationView. Sebagai gantinya, Windows Runtime menyediakan kelas ApplicationView
Demikian juga, kerangka kerja XAML membungkus objek
Perlihatkan tampilan baru
Meskipun setiap tata letak aplikasi unik, sebaiknya sertakan tombol "jendela baru" di lokasi yang dapat diprediksi, seperti sudut kanan atas konten yang dapat dibuka di jendela baru. Pertimbangkan juga untuk menyertakan opsi menu konteks untuk "Buka di jendela baru".
Mari kita lihat langkah-langkah untuk membuat tampilan baru. Di sini, tampilan baru diluncurkan sebagai respons terhadap klik tombol.
private async void Button_Click(object sender, RoutedEventArgs e)
{
CoreApplicationView newView = CoreApplication.CreateNewView();
int newViewId = 0;
await newView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
Frame frame = new Frame();
frame.Navigate(typeof(SecondaryPage), null);
Window.Current.Content = frame;
// You have to activate the window in order to show it later.
Window.Current.Activate();
newViewId = ApplicationView.GetForCurrentView().Id;
});
bool viewShown = await ApplicationViewSwitcher.TryShowAsStandaloneAsync(newViewId);
}
Untuk menampilkan tampilan baru
Panggil CoreApplication.CreateNewView untuk membuat jendela dan utas baru untuk konten tampilan.
CoreApplicationView newView = CoreApplication.CreateNewView();Lacak Id tampilan baru. Anda menggunakan ini untuk menampilkan tampilan nanti.
Anda mungkin ingin mempertimbangkan untuk membangun beberapa infrastruktur ke dalam aplikasi Anda untuk membantu melacak tampilan yang Anda buat. Lihat kelas
ViewLifetimeControlpada sampel MultipleViews untuk contohnya.int newViewId = 0;Pada utas baru, isi jendela.
Anda menggunakan metode CoreDispatcher.RunAsync untuk menjadwalkan pekerjaan pada utas UI untuk tampilan baru. Anda menggunakan ekspresi lambda
untuk meneruskan fungsi sebagai argumen ke metode RunAsync . Pekerjaan yang Anda lakukan dalam fungsi lambda terjadi pada utas tampilan baru. Di XAML, Anda biasanya menambahkan Bingkai
ke properti KontenWindow , lalu menavigasi Bingkai ke Halaman tempat Anda menentukan konten aplikasi. Untuk informasi selengkapnya tentang bingkai dan halaman, lihat navigasi antar-rekan antara dua halaman .XAML Setelah Jendela
baru diisi, Anda harus memanggil metode JendelaAktifkan untuk menampilkan Jendela nanti. Pekerjaan ini terjadi pada utas tampilan baru, sehingga jendela baru diaktifkan. Terakhir, dapatkan Id dari tampilan baru yang Anda gunakan untuk menampilkannya nanti. Sekali lagi, pekerjaan ini ada di utas tampilan baru, jadi ApplicationView.GetForCurrentView mendapatkan Id dari tampilan baru.
await newView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { Frame frame = new Frame(); frame.Navigate(typeof(SecondaryPage), null); Window.Current.Content = frame; // You have to activate the window in order to show it later. Window.Current.Activate(); newViewId = ApplicationView.GetForCurrentView().Id; });Tampilkan tampilan baru dengan memanggil ApplicationViewSwitcher.TryShowAsStandaloneAsync.
Setelah membuat tampilan baru, Anda dapat menampilkannya di jendela baru dengan memanggil metode ApplicationViewSwitcher.TryShowAsStandaloneAsync. Parameter viewId
untuk metode ini adalah bilangan bulat yang secara unik mengidentifikasi setiap tampilan di aplikasi Anda. Anda mengambil tampilan dengan menggunakan propertiId ApplicationView.Id atau metodeApplicationView.GetApplicationViewIdForWindow. bool viewShown = await ApplicationViewSwitcher.TryShowAsStandaloneAsync(newViewId);
Tampilan utama
Tampilan pertama yang dibuat saat aplikasi Anda dimulai disebut tampilan utama . Tampilan ini disimpan di properti CoreApplication.MainView, dan properti IsMain bernilai benar. Anda tidak membuat tampilan ini; dibuat oleh aplikasi. Thread tampilan utama berfungsi sebagai manajer untuk aplikasi, dan semua event aktivasi aplikasi dikirimkan pada thread ini.
Jika tampilan sekunder terbuka, jendela tampilan utama dapat disembunyikan – misalnya, dengan mengklik tombol tutup (x) di bilah judul jendela - tetapi utasnya tetap aktif. Memanggil Tutup pada jendela dari tampilan utama menyebabkan terjadinya InvalidOperationException. (Gunakan Application.Exit untuk menutup aplikasi Anda.) Jika utas tampilan utama dihentikan, aplikasi akan ditutup.
Tampilan sekunder
Tampilan lain, termasuk semua tampilan yang Anda buat dengan memanggil CreateNewView di kode aplikasi Anda, adalah tampilan sekunder. Tampilan utama dan tampilan sekunder disimpan dalam CoreApplication.Views koleksi. Biasanya, Anda membuat tampilan sekunder sebagai respons terhadap tindakan pengguna. Dalam beberapa kasus, sistem membuat tampilan sekunder untuk aplikasi Anda.
Nota
Anda dapat menggunakan fitur akses yang ditetapkan
Beralih dari satu tampilan ke tampilan lainnya
Pertimbangkan untuk menyediakan cara bagi pengguna untuk menavigasi dari jendela sekunder kembali ke jendela induknya. Untuk melakukan ini, gunakan metode
await ApplicationViewSwitcher.SwitchAsync(viewIdToShow);
Saat Anda menggunakan SwitchAsync, Anda dapat memilih apakah Anda ingin menutup jendela awal dan menghapusnya dari taskbar dengan menentukan nilai ApplicationViewSwitchingOptions.