Sdílet prostřednictvím


Nastavení platformy WPF

Náhled popisku

Xamarin.Forms má podporu verze Preview pro Windows Presentation Foundation (WPF), v rozhraní .NET Framework a v .NET Core 3. Tento článek ukazuje, jak přidat projekt WPF, který cílí na rozhraní .NET Framework, do Xamarin.Forms řešení.

Důležité

Xamarin.Forms podpora WPF je poskytována komunitou. Další informace najdete v tématu Xamarin.Forms Podpora platformy.

Než začnete, vytvořte nové Xamarin.Forms řešení v sadě Visual Studio 2019 nebo použijte existující Xamarin.Forms řešení.

Přidání aplikace WPF

Podle těchto pokynů přidejte aplikaci WPF, která se bude spouštět na počítačích s Windows 7, 8 a 10:

  1. V sadě Visual Studio 2019 klikněte pravým tlačítkem na název řešení v Průzkumník řešení a zvolte Přidat > nový projekt....

  2. V okně Přidat nový projekt vyberte v rozevíracím seznamu Jazyky jazyk C#, v rozevíracím seznamu Platformy vyberte Windows a v rozevíracím seznamu Typ projektu vyberte Desktop. V seznamu typů projektů zvolte aplikaci WPF (.NET Framework):

    Snímek obrazovky s dialogovým oknem Přidat nový projekt s vybranou aplikací W P F

    Stiskněte tlačítko Další.

    Poznámka:

    Xamarin.Forms 4.7 zahrnuje podporu aplikací WPF, které běží na .NET Core 3.

  3. V okně Konfigurovat nový projekt zadejte název projektu s příponou WPF, například BoxViewClock.WPF. Klikněte na tlačítko Procházet , vyberte složku BoxViewClock a stisknutím klávesy Select Folder umístěte projekt WPF do stejného adresáře jako ostatní projekty v řešení:

    Snímek obrazovky s dialogovým oknem Konfigurovat nový projekt s hodnotami pro název projektu, umístění a architekturu

    Stisknutím tlačítka Vytvořit vytvořte projekt.

  4. V Průzkumník řešení klikněte pravým tlačítkem na nový projekt BoxViewClock.WPF a vyberte Spravovat balíčky NuGet....Vyberte kartu Procházet a vyhledejte Xamarin.Forms. Platform.WPF:

    Výběr balíčku NuGet

    Vyberte balíček a klikněte na tlačítko Instalovat .

  5. Pravým tlačítkem myši klikněte na název řešení v Průzkumník řešení a vyberte Spravovat balíčky NuGet pro řešení.... Vyberte kartu Aktualizace a pak vyberte Xamarin.Forms balíček. Vyberte všechny projekty a aktualizujte je na stejnou Xamarin.Forms verzi:

    Aktualizace balíčku NuGet

  6. V projektu WPF klikněte pravým tlačítkem myši na Odkazy a vyberte Přidat odkaz.... V dialogovém okně Správce odkazů vyberte Projekty vlevo a zaškrtněte políčko vedle projektu BoxViewClock :

    Odkaz na sdílený projekt

    Stiskněte tlačítko OK.

  7. Upravte soubor MainWindow.xaml projektu WPF. Do značky Window přidejte deklaraci oboru názvů XML pro Xamarin.Formsobjekt . Sestavení Platform.WPF a obor názvů:

    xmlns:wpf="clr-namespace:Xamarin.Forms.Platform.WPF;assembly=Xamarin.Forms.Platform.WPF"
    

    Nyní změňte Window značku na wpf:FormsApplicationPage. Title Změňte nastavení na název aplikace, například BoxViewClock. Dokončený soubor XAML by měl vypadat takto:

    <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>
    
  8. Upravte soubor MainWindow.xaml.cs projektu WPF. Přidejte dvě nové using direktivy:

    using Xamarin.Forms;
    using Xamarin.Forms.Platform.WPF;
    

    Změňte základní třídu MainWindow z Window na FormsApplicationPage. InitializeComponent Za volání přidejte následující dva příkazy:

    Forms.Init();
    LoadApplication(new BoxViewClock.App());
    

    S výjimkou komentářů a nepoužívaných using direktiv by měl úplný soubor MainWindows.xaml.cs vypadat takto:

    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());
            }
        }
    }
    
  9. Klikněte pravým tlačítkem myši na projekt WPF v Průzkumník řešení a vyberte Nastavit jako spouštěný projekt. Stisknutím klávesy F5 spusťte program pomocí ladicího programu sady Visual Studio na ploše Windows:

    WPF BoxView Clock

Specifika platformy

Z kódu nebo XAML můžete určit, na jaké platformě Xamarin.Forms vaše aplikace běží. To vám umožní změnit charakteristiky programu, když běží na WPF. V kódu porovnejte hodnotu Device.RuntimePlatform s konstantou Device.WPF (která se rovná řetězci "WPF"). Pokud existuje shoda, aplikace běží na WPF.

V XAML můžete pomocí značky OnPlatform vybrat hodnotu vlastnosti specifickou pro platformu:

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

Velikost okna

Počáteční velikost okna můžete upravit v souboru WPF MainWindow.xaml :

Title="BoxViewClock" Height="450" Width="800"

Problémy

Jedná se o verzi Preview, takže byste měli očekávat, že není všechno připravené pro produkční prostředí. Ne všechny balíčky NuGet pro Xamarin.Forms jsou připravené pro WPF a některé funkce nemusí plně fungovat.

Xamarin.Forms Video podpory WPF 3.0