GTK #-Platt Form EinrichtungGTK# Platform Setup

Vorschau

Xamarin.Formsbietet jetzt eine Vorschau Unterstützung für gtk #-apps. now has preview support for GTK# apps. GTK # ist ein grafisches Toolkit für die Benutzeroberfläche, das das GTK +-Toolkit und eine Vielzahl von GNOME-Bibliotheken verknüpft und die Entwicklung von vollständig nativen gnome-Grafik-apps mit Mono und .NET ermöglicht.GTK# is a graphical user interface toolkit that links the GTK+ toolkit and a variety of GNOME libraries, allowing the development of fully native GNOME graphics apps using Mono and .NET. In diesem Artikel wird veranschaulicht, wie Sie ein GTK #-Projekt zu einer Projekt Mappe hinzufügen Xamarin.Forms .This article demonstrates how to add a GTK# project to a Xamarin.Forms solution.

Wichtig

Xamarin.Formsdie Unterstützung für gtk # wird von der Community bereitgestellt. support for GTK# is provided by the community. Weitere Informationen finden Sie Xamarin.Forms unter Platt Form Unterstützung.For more information, see Xamarin.Forms Platform Support.

Bevor Sie beginnen, erstellen Sie eine neue Projekt Mappe Xamarin.Forms , oder verwenden Sie eine vorhandene Xamarin.Forms Lösung, z. b. gameololife.Before you start, create a new Xamarin.Forms solution, or use an existing Xamarin.Forms solution, for example, GameOfLife.

Hinweis

Dieser Artikel konzentriert sich auf das Hinzufügen einer GTK #-APP zu einer Xamarin.Forms Lösung in VS2017 und Visual Studio für Mac und kann auch in monodevelop für Linux ausgeführt werden.While this article focuses on adding a GTK# app to a Xamarin.Forms solution in VS2017 and Visual Studio for Mac, it can also be performed in MonoDevelop for Linux.

Hinzufügen einer GTK #-AppAdding a GTK# App

GTK # für macOS und Linux wird als Teil von Monoinstalliert.GTK# for macOS and Linux is installed as part of Mono. GTK # für .net kann unter Windows mit dem gtk #-Installerinstalliert werden.GTK# for .NET can be installed on Windows with the GTK# Installer.

Befolgen Sie diese Anweisungen zum Hinzufügen einer GTK #-APP, die auf dem Windows-Desktop ausgeführt wird:Follow these instructions to add a GTK# app that will run on the Windows desktop:

  1. Klicken Sie in Visual Studio 2019 in Projektmappen-Explorer mit der rechten Maustaste auf den Projektmappennamen, und wählen Sie > neues Projekt hinzufügen... aus.In Visual Studio 2019, right-click on the solution name in Solution Explorer and choose Add > New Project....

  2. Wählen Sie Links im Fenster Neues Projekt die Option Visual c# und klassischer Windows-Desktopaus.In the New Project window, at the left select Visual C# and Windows Classic Desktop. Wählen Sie in der Liste der Projekttypen die Option Klassenbibliothek (.NET Framework) aus, und stellen Sie sicher, dass die Dropdown Liste für das Framework auf mindestens .NET Framework 4,7 festgelegt ist.In the list of project types, choose Class Library (.NET Framework), and ensure that the Framework drop-down is set to a minimum of .NET Framework 4.7.

  3. Geben Sie einen Namen für das Projekt mit einer gtk -Erweiterung ein, z. b. gameof Life. GTK.Type a name for the project with a GTK extension, for example GameOfLife.GTK. Klicken Sie auf die Schaltfläche Durchsuchen , wählen Sie den Ordner mit den anderen Platt Form Projekten aus, und drücken Sie Ordner auswählen.Click the Browse button, select the folder containing the other platform projects, and press Select Folder. Dadurch wird das GTK-Projekt in dasselbe Verzeichnis wie die anderen Projekte in der Projekt Mappe eingefügt.This will put the GTK project in the same directory as the other projects in the solution.

    Hinzufügen eines neuen gtk-ProjektsAdd a new GTK project

    Klicken Sie auf die Schaltfläche OK , um das Projekt zu erstellen.Press the OK button to create the project.

  4. Klicken Sie im Projektmappen-Explorermit der rechten Maustaste auf das neue gtk-Projekt, und wählen Sie nuget-Pakete verwalten.In the Solution Explorer, right click the new GTK project and select Manage NuGet Packages. Wählen Sie die Registerkarte Durchsuchen aus, und suchen Sie nach Xamarin.Forms 3,0 oder höher.Select the Browse tab, and search for Xamarin.Forms 3.0 or greater.

    Xamarin.FormsNuget-Paket auswählenSelect the Xamarin.Forms NuGet package

    Wählen Sie das Paket, und klicken Sie auf die Schaltfläche Installieren .Select the package and click the Install button.

  5. Suchen Sie jetzt nach ** Xamarin.Forms . Platform. GTK** 3,0-Paket oder höher.Now search for the Xamarin.Forms.Platform.GTK 3.0 package or greater.

    Wählen Sie aus Xamarin.Forms . Platform. GTK nuget-PaketSelect the Xamarin.Forms.Platform.GTK NuGet package

    Wählen Sie das Paket, und klicken Sie auf die Schaltfläche Installieren .Select the package and click the Install button.

  6. Klicken Sie im Projektmappen-Explorermit der rechten Maustaste auf den Projektmappennamen, und wählen Sie nuget-Pakete fürProjekt Mappe verwalten.In the Solution Explorer, right-click the solution name and select Manage NuGet Packages for Solution. Wählen Sie die Registerkarte Aktualisieren und das Xamarin.Forms Paket aus.Select the Update tab and the Xamarin.Forms package. Wählen Sie alle Projekte aus, und aktualisieren Sie Sie auf die Version, die Xamarin.Forms vom gtk-Projekt verwendet wird.Select all the projects and update them to the same Xamarin.Forms version as used by the GTK project.

  7. Klicken Sie im Projektmappen-Explorermit der rechten Maustaste auf Verweise im gtk-Projekt.In the Solution Explorer, right-click on References in the GTK project. Wählen Sie im Dialogfeld Verweis-Manager die Option Projekte auf der linken Seite aus, und aktivieren Sie das Kontrollkästchen neben dem .NET Standard oder dem freigegebenen Projekt:In the Reference Manager dialog, select Projects at the left, and check the checkbox adjacent to the .NET Standard or Shared project:

    Verweisen auf das freigegebene ProjektReference the shared project

  8. Klicken Sie im Dialogfeld Verweis-Manager auf die Schaltfläche Durchsuchen , navigieren Sie zum Ordner c:\Programme (x86) \gtksharp\2.12\lib , und wählen Sie die atk-sharp.dll, gdk-sharp.dll, glade-sharp.dll, glib-sharp.dll, gtk-dotnet.dll gtk-sharp.dllDateien aus .In the Reference Manager dialog, press the Browse button and browse to the C:\Program Files (x86)\GtkSharp\2.12\lib folder and select the atk-sharp.dll, gdk-sharp.dll, glade-sharp.dll, glib-sharp.dll, gtk-dotnet.dll, gtk-sharp.dll files.

    Verweisen auf die GTK #-BibliothekenReference the GTK# libraries

    Klicken Sie auf die Schaltfläche OK , um die Verweise hinzuzufügen.Press the OK button to add the references.

  9. Benennen Sie Class1.cs im gtk-Projekt in Program.csum.In the GTK project, rename Class1.cs to Program.cs.

  10. Bearbeiten Sie im gtk-Projekt die Datei Program.cs , sodass Sie dem folgenden Code ähnelt:In the GTK project, edit the Program.cs file so that it resembles the following code:

    using System;
    using Xamarin.Forms;
    using Xamarin.Forms.Platform.GTK;
    
    namespace GameOfLife.GTK
    {
        class MainClass
        {
            [STAThread]
            public static void Main(string[] args)
            {
                Gtk.Application.Init();
                Forms.Init();
    
                var app = new App();
                var window = new FormsWindow();
                window.LoadApplication(app);
                window.SetApplicationTitle("Game of Life");
                window.Show();
    
                Gtk.Application.Run();
            }
        }
    }
    

    Dieser Code initialisiert GTK # und Xamarin.Forms , erstellt ein Anwendungsfenster und führt die APP aus.This code initializes GTK# and Xamarin.Forms, creates an application window, and runs the app.

  11. Klicken Sie im Projektmappen-Explorermit der rechten Maustaste auf das GTK-Projekt, und wählen Sie Eigenschaften.In the Solution Explorer, right click the GTK project and select Properties.

  12. Wählen Sie im Fenster Eigenschaften die Registerkarte Anwendung aus, und ändern Sie das Dropdown Feld Ausgabetyp in Windows-Anwendung.In the Properties window, select the Application tab and change the Output type drop-down to Windows Application.

    Ändern des Projekt Ausgabe TypsChange the project output type

  13. Klicken Sie im Projektmappen-Explorermit der rechten Maustaste auf das GTK-Projekt, und wählen Sie als Startprojekt festlegenaus.In the Solution Explorer, right-click the GTK project and select Set as Startup Project. Drücken Sie F5, um das Programm mit dem Visual Studio-Debugger auf dem Windows-Desktop auszuführen:Press F5 to run the program with the Visual Studio debugger on the Windows desktop:

    GTK #-LebenszyklusGTK# Game of Life

Nächste SchritteNext Steps

PlattformeigenschaftenPlatform Specifics

Mithilfe Xamarin.Forms von XAML oder Code können Sie ermitteln, auf welcher Plattform die Anwendung ausgeführt wird.You can determine what platform your Xamarin.Forms application is running on from either XAML or code. Dies ermöglicht es Ihnen, die Programm Merkmale zu ändern, wenn Sie in GTK # ausgeführt werden.This allows you to change program characteristics when it's running on GTK#. Vergleichen Sie im Code den Wert von Device.RuntimePlatform mit der- Device.GTK Konstante (die der Zeichenfolge "gtk" entspricht).In code, compare the value of Device.RuntimePlatform with the Device.GTK constant (which equals the string "GTK"). Wenn eine Entsprechung vorliegt, wird die Anwendung in GTK # ausgeführt.If there's a match, the application is running on GTK#.

In XAML können Sie das-Tag verwenden, OnPlatform um einen für die Plattform spezifischen Eigenschafts Wert auszuwählen:In XAML, you can use the OnPlatform tag to select a property value specific to the platform:

<Button.TextColor>
    <OnPlatform x:TypeArguments="Color">
        <On Platform="iOS" Value="White" />
        <On Platform="macOS" Value="White" />
        <On Platform="Android" Value="Black" />
        <On Platform="GTK" Value="Blue" />
    </OnPlatform>
</Button.TextColor>

AnwendungssymbolApplication Icon

Sie können das App-Symbol beim Start festlegen:You can set the app icon at startup:

window.SetApplicationIcon("icon.png");

DesignsThemes

Es gibt eine Vielzahl von Designs, die für gtk # verfügbar sind, und Sie können von einer-App verwendet werden Xamarin.Forms :There are a wide variety of themes available for GTK#, and they can be used from a Xamarin.Forms app:

GtkThemes.Init ();
GtkThemes.LoadCustomTheme ("Themes/gtkrc");

Native FormulareNative Forms

Mithilfe von systemeigenen Formularen können Xamarin.Forms ContentPage von abgeleitete Seiten von systemeigenen Projekten, einschließlich gtk #-Projekten, genutzt werden.Native Forms allows Xamarin.Forms ContentPage-derived pages to be consumed by native projects, including GTK# projects. Dies kann erreicht werden, indem eine Instanz der von ContentPage abgeleiteten Seite erstellt und mithilfe der-Erweiterungsmethode in den systemeigenen gtk #-Typ umgerechnet wird CreateContainer :This can be accomplished by creating an instance of the ContentPage-derived page and converting it to the native GTK# type using the CreateContainer extension method:

var settingsView = new SettingsView().CreateContainer();
vbox.PackEnd(settingsView, true, true, 0);

Weitere Informationen zu systemeigenen Formularen finden Sie unter native Forms.For more information about Native Forms, see Native Forms.

ProblemeIssues

Dies ist eine Vorschauversion, daher sollten Sie davon ausgehen, dass nicht alles in der Produktion bereit ist.This is a Preview, so you should expect that not everything is production ready. Den aktuellen Implementierungs Status finden Sie unter Statusund Informationen zu den aktuellen bekannten Problemen finden Sie unter ausstehende & bekannte Probleme.For the current implementation status, see Status, and for the current known issues, see Pending & Known Issues.