Nastavení platformy GTK#
Xamarin.Forms teď má podporu verze Preview pro aplikace GTK#. GTK# je grafická sada nástrojů uživatelského rozhraní, která propojuje sadu nástrojů GTK+ a řadu knihoven GNOME, což umožňuje vývoj plně nativních grafických aplikací GNOME pomocí Mono a .NET. Tento článek ukazuje, jak přidat projekt GTK# do Xamarin.Forms řešení.
Důležité
Xamarin.Forms podpora pro GTK# je poskytována komunitou. Další informace najdete v tématu Xamarin.Forms Podpora platformy.
Než začnete, vytvořte nové Xamarin.Forms řešení nebo použijte existující Xamarin.Forms řešení.
Poznámka:
I když se tento článek zaměřuje na přidání aplikace GTK# do Xamarin.Forms řešení ve VS2017 a Visual Studio pro Mac, dá se také provést v MonoDevelop pro Linux.
Přidání aplikace GTK#
GTK# pro macOS a Linux se instaluje jako součást Mono. GTK# pro .NET je možné nainstalovat ve Windows pomocí instalačního programu GTK#.
Podle těchto pokynů přidejte aplikaci GTK#, která se spustí na ploše Windows:
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....
V okně Nový projekt vlevo vyberte Visual C# a Klasickou plochu Windows. V seznamu typů projektů zvolte Knihovna tříd (.NET Framework) a ujistěte se, že rozevírací seznam Framework je nastaven na minimálně rozhraní .NET Framework 4.7.
Zadejte název projektu s příponou GTK , například GameOfLife.GTK. Klikněte na tlačítko Procházet , vyberte složku obsahující ostatní projekty platformy a stiskněte vybrat složku. Tím se projekt GTK umístí do stejného adresáře jako ostatní projekty v řešení.
Stisknutím tlačítka OK vytvořte projekt.
V Průzkumník řešení klikněte pravým tlačítkem na nový projekt GTK a vyberte Spravovat balíčky NuGet. Vyberte kartu Procházet a vyhledejte Xamarin.Forms hodnotu 3.0 nebo vyšší.
Vyberte balíček a klikněte na tlačítko Instalovat .
Nyní vyhledejte Xamarin.Forms. Balíček Platform.GTK 3.0 nebo novější.
Vyberte balíček a klikněte na tlačítko Instalovat .
V Průzkumník řešení klikněte pravým tlačítkem na název řešení a vyberte Spravovat balíčky NuGet pro řešení. Vyberte kartu Aktualizovat a Xamarin.Forms balíček. Vyberte všechny projekty a aktualizujte je na stejnou Xamarin.Forms verzi, jakou používá projekt GTK.
V Průzkumník řešení klikněte pravým tlačítkem na Odkazy v projektu GTK. V dialogovém okně Správce odkazů vyberte Projekty vlevo a zaškrtněte políčko vedle projektu .NET Standard nebo sdíleného projektu:
V dialogovém okně Správce odkazů stiskněte tlačítko Procházet a přejděte do složky C:\Program Files (x86)\GtkSharp\2.12\lib a vyberte složku atk-sharp.dll, gdk-sharp.dll, glade-sharp.dll, glib-sharp.dll, gtk-dotnet.dll, gtk-sharp.dll soubory.
Stisknutím tlačítka OK přidejte odkazy.
V projektu GTK přejmenujte Class1.cs na Program.cs.
V projektu GTK upravte soubor Program.cs tak, aby připomínal následující kód:
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(); } } }
Tento kód inicializuje GTK# a Xamarin.Formsvytvoří okno aplikace a spustí aplikaci.
V Průzkumník řešení klikněte pravým tlačítkem na projekt GTK a vyberte Vlastnosti.
V okně Vlastnosti vyberte kartu Aplikace a změňte rozevírací seznam Typ výstupu na aplikaci systému Windows.
V Průzkumník řešení klikněte pravým tlačítkem na projekt GTK 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:
Další kroky
Specifika platforem
To, na jaké platformě Xamarin.Forms aplikace běží, můžete určit z XAML nebo kódu. To vám umožní změnit charakteristiky programu, když běží v GTK#. V kódu porovnejte hodnotu Device.RuntimePlatform
s konstantou Device.GTK
(která se rovná řetězci "GTK"). Pokud existuje shoda, aplikace běží v GTK#.
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="GTK" Value="Blue" />
</OnPlatform>
</Button.TextColor>
Ikona aplikace
Ikonu aplikace můžete nastavit při spuštění:
window.SetApplicationIcon("icon.png");
Themes
Pro GTK# je k dispozici celá řada motivů, které je možné použít z Xamarin.Forms aplikace:
GtkThemes.Init ();
GtkThemes.LoadCustomTheme ("Themes/gtkrc");
Nativní formuláře
Nativní formuláře umožňují Xamarin.FormsContentPage
využívat odvozené stránky nativními projekty, včetně projektů GTK#. Toho lze dosáhnout vytvořením instance ContentPage
odvozené stránky a převodem na nativní typ GTK# pomocí CreateContainer
metody rozšíření:
var settingsView = new SettingsView().CreateContainer();
vbox.PackEnd(settingsView, true, true, 0);
Další informace o nativních formulářích naleznete v tématu Nativní formuláře.
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í. Aktuální stav implementace naleznete v tématu Stav a aktuální známé problémy naleznete v tématu Čekající a známé problémy.