Penyiapan platform WPF
Xamarin.Forms memiliki dukungan pratinjau untuk Windows Presentation Foundation (WPF), pada .NET Framework dan di .NET Core 3. Artikel ini menunjukkan cara menambahkan proyek WPF yang menargetkan .NET Framework, ke solusi Xamarin.Forms .
Penting
Xamarin.Forms dukungan untuk WPF disediakan oleh komunitas. Untuk informasi selengkapnya, lihat Xamarin.Forms Dukungan Platform.
Sebelum memulai, buat solusi baru Xamarin.Forms di Visual Studio 2019, atau gunakan solusi yang sudah ada Xamarin.Forms .
Menambahkan aplikasi WPF
Ikuti instruksi berikut untuk menambahkan aplikasi WPF yang akan berjalan pada desktop Windows 7, 8, dan 10:
Di Visual Studio 2019, klik kanan pada nama solusi di Penjelajah Solusi dan pilih Tambahkan > Proyek Baru....
Di jendela Tambahkan proyek baru, pilih C# di menu drop-down Bahasa , pilih Windows di menu drop-down Platform , dan pilih Desktop di menu drop-down Jenis proyek. Dalam daftar jenis proyek, pilih Aplikasi WPF (.NET Framework):
Tekan tombol Berikutnya .
Catatan
Xamarin.Forms 4.7 menyertakan dukungan untuk aplikasi WPF yang berjalan di .NET Core 3.
Di jendela Konfigurasikan proyek baru Anda, ketik nama untuk proyek dengan ekstensi WPF , misalnya, BoxViewClock.WPF. Klik tombol Telusuri , pilih folder BoxViewClock , dan tekan Pilih Folder untuk meletakkan proyek WPF di direktori yang sama dengan proyek lain dalam solusi:
Tekan tombol Buat untuk membuat proyek.
Di Penjelajah Solusi, klik kanan proyek BoxViewClock.WPF baru dan pilih Kelola Paket NuGet.... Pilih tab Telusuri, dan cari Xamarin.Forms. Platform.WPF:
Pilih paket dan klik tombol Instal .
Klik kanan nama solusi di Penjelajah Solusi dan pilih Kelola Paket NuGet untuk Solusi.... Pilih tab Pembaruan lalu pilih Xamarin.Forms paket. Pilih semua proyek dan perbarui ke versi yang sama Xamarin.Forms :
Dalam proyek WPF, klik kanan Referensi dan pilih Tambahkan Referensi.... Dalam dialog Manajer Referensi, pilih Proyek di sebelah kiri, dan centang kotak centang yang berdekatan dengan proyek BoxViewClock:
Tekan tombol OK .
Edit file MainWindow.xaml dari proyek WPF.
Window
Dalam tag, tambahkan deklarasi namespace XML untuk Xamarin.Forms. Perakitan dan namespace platform.WPF:xmlns:wpf="clr-namespace:Xamarin.Forms.Platform.WPF;assembly=Xamarin.Forms.Platform.WPF"
Sekarang ubah tag menjadi
Window
wpf:FormsApplicationPage
.Title
Ubah pengaturan ke nama aplikasi Anda, misalnya, BoxViewClock. File XAML yang telah selesai akan terlihat seperti ini:<wpf:FormsApplicationPage x:Class="BoxViewClock.WPF.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:BoxViewClock.WPF" xmlns:wpf="clr-namespace:Xamarin.Forms.Platform.WPF;assembly=Xamarin.Forms.Platform.WPF" mc:Ignorable="d" Title="BoxViewClock" Height="450" Width="800"> <Grid> </Grid> </wpf:FormsApplicationPage>
Edit file MainWindow.xaml.cs proyek WPF. Tambahkan dua arahan baru
using
:using Xamarin.Forms; using Xamarin.Forms.Platform.WPF;
Ubah kelas dasar dari menjadi
MainWindow
Window
FormsApplicationPage
.InitializeComponent
Setelah panggilan, tambahkan dua pernyataan berikut:Forms.Init(); LoadApplication(new BoxViewClock.App());
Kecuali untuk komentar dan arahan yang tidak digunakan
using
, file MainWindows.xaml.cs lengkap akan terlihat seperti ini:using Xamarin.Forms; using Xamarin.Forms.Platform.WPF; namespace BoxViewClock.WPF { public partial class MainWindow : FormsApplicationPage { public MainWindow() { InitializeComponent(); Forms.Init(); LoadApplication(new BoxViewClock.App()); } } }
Klik kanan proyek WPF di Penjelajah Solusi dan pilih Atur sebagai Proyek Startup. Tekan F5 untuk menjalankan program dengan debugger Visual Studio di desktop Windows:
Spesifikasi platform
Anda dapat menentukan platform apa yang dijalankan aplikasi Anda Xamarin.Forms dari kode atau XAML. Ini memungkinkan Anda untuk mengubah karakteristik program ketika berjalan di WPF. Dalam kode, bandingkan nilai Device.RuntimePlatform
dengan konstanta (yang sama dengan Device.WPF
string "WPF"). Jika ada kecocokan, aplikasi berjalan di WPF.
Di XAML, Anda dapat menggunakan OnPlatform
tag untuk memilih nilai properti khusus untuk platform:
<Button.TextColor>
<OnPlatform x:TypeArguments="Color">
<On Platform="iOS" Value="White" />
<On Platform="macOS" Value="White" />
<On Platform="Android" Value="Black" />
<On Platform="WPF" Value="Blue" />
</OnPlatform>
</Button.TextColor>
Ukuran jendela
Anda dapat menyesuaikan ukuran awal jendela dalam file WPF MainWindow.xaml :
Title="BoxViewClock" Height="450" Width="800"
Terbitan
Ini adalah pratinjau, jadi Anda harus mengharapkan bahwa tidak semuanya siap produksi. Tidak semua paket Xamarin.Forms NuGet siap untuk WPF, dan beberapa fitur mungkin tidak sepenuhnya berfungsi.
Video Terkait
Xamarin.Forms Video dukungan WPF 3.0