Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Xamarin.Forms Теперь доступна предварительная версия поддержки приложений GTK#. GTK# — это графический набор средств пользовательского интерфейса, который связывает набор средств GTK+ и различные библиотеки GNOME, что позволяет разрабатывать полностью собственные графические приложения GNOME с помощью Mono и .NET. В этой статье показано, как добавить проект GTK# в Xamarin.Forms решение.
Внимание
Xamarin.Forms поддержка GTK# предоставляется сообществом. Дополнительные сведения см. в разделе Xamarin.Forms "Поддержка платформы".
Прежде чем начать, создайте новое Xamarin.Forms решение или используйте существующее Xamarin.Forms решение.
Примечание.
Хотя эта статья посвящена добавлению приложения GTK# в Xamarin.Forms решение в VS2017 и Visual Studio для Mac, его также можно выполнить в MonoDevelop для Linux.
Добавление приложения GTK#
GTK# для macOS и Linux устанавливается в составе Mono. GTK# для .NET можно установить в Windows с помощью установщика GTK#.
Выполните следующие инструкции, чтобы добавить приложение GTK#, которое будет работать на рабочем столе Windows:
В Visual Studio 2019 щелкните правой кнопкой мыши имя решения в Обозреватель решений и выберите "Добавить > новый проект...".
В окне "Новый проект" в левой части экрана выберите Visual C# и Классический рабочий стол Windows. В списке типов проектов выберите библиотеку классов (платформа .NET Framework)и убедитесь, что раскрывающийся список Framework установлен как минимум платформа .NET Framework 4.7.
Введите имя проекта с расширением GTK , например GameOfLife.GTK. Нажмите кнопку "Обзор ", выберите папку, содержащую другие проекты платформы, и нажмите клавишу SELECT FOLDER. При этом проект GTK будет помещен в тот же каталог, что и другие проекты в решении.

Нажмите кнопку "ОК", чтобы создать проект.
В Обозреватель решений щелкните правой кнопкой мыши новый проект GTK и выберите пункт "Управление пакетами NuGet". Выберите вкладку "Обзор " и найдите Xamarin.Forms 3.0 или более поздней версии.

Выберите пакет и нажмите кнопку "Установить ".
Теперь выполните Xamarin.Formsпоиск . Пакет Platform.GTK 3.0 или больше.

Выберите пакет и нажмите кнопку "Установить ".
В Обозреватель решений щелкните правой кнопкой мыши имя решения и выберите пункт "Управление пакетами NuGet для решения". Выберите вкладку "Обновить" и Xamarin.Forms пакет. Выберите все проекты и обновите их до той же Xamarin.Forms версии, что и проект GTK.
В Обозреватель решений щелкните правой кнопкой мыши ссылки в проекте GTK. В диалоговом окне "Диспетчер ссылок" выберите "Проекты" слева и установите флажок рядом с проектом .NET Standard или Shared:

В диалоговом окне диспетчера ссылок нажмите кнопку "Обзор" и перейдите к папке C:\Program Files (x86)\GtkSharp\2.12\lib и выберите папку atk-sharp.dll, gdk-sharp.dll, glade-sharp.dll, glib-sharp.dll, gtk-dotnet.dll, gtk-sharp.dll файлов.

Нажмите кнопку "ОК", чтобы добавить ссылки.
В проекте GTK переименуйте Class1.cs в Program.cs.
В проекте GTK измените файл Program.cs таким образом, чтобы он выглядел следующим образом:
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(); } } }Этот код инициализирует GTK# и Xamarin.Formsсоздает окно приложения и запускает приложение.
В Обозреватель решений щелкните правой кнопкой мыши проект GTK и выберите "Свойства".
В окне "Свойства" выберите вкладку "Приложение" и измените раскрывающийся список "Тип вывода" на приложение Windows.

В Обозреватель решений щелкните правой кнопкой мыши проект GTK и выберите "Задать в качестве запускаемого проекта". Нажмите клавишу F5, чтобы запустить программу с отладчиком Visual Studio на рабочем столе Windows:

Next Steps
Особенности платформы
Вы можете определить, на какой платформе Xamarin.Forms работает ваше приложение из XAML или кода. Это позволяет изменять характеристики программы при запуске в GTK#. В коде сравните значение Device.RuntimePlatform константы Device.GTK (которое равно строке GTK). Если есть совпадение, приложение выполняется на GTK#.
В XAML можно использовать OnPlatform тег для выбора значения свойства, относящееся к платформе:
<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>
Значок приложения
Вы можете задать значок приложения при запуске:
window.SetApplicationIcon("icon.png");
Themes
Существует множество тем, доступных для GTK#, и их можно использовать из Xamarin.Forms приложения:
GtkThemes.Init ();
GtkThemes.LoadCustomTheme ("Themes/gtkrc");
Собственные формы
Native Forms позволяет Xamarin.FormsContentPageиспользовать производные страницы собственными проектами, включая проекты GTK#. Это можно сделать, создав экземпляр ContentPageпроизводной страницы и преобразовав его в собственный тип GTK# с помощью CreateContainer метода расширения:
var settingsView = new SettingsView().CreateContainer();
vbox.PackEnd(settingsView, true, true, 0);
Дополнительные сведения о машинных формах см. в разделе "Собственные формы".
Проблемы
Это предварительная версия, поэтому следует ожидать, что не все готово к работе. Сведения о текущем состоянии реализации см. в разделе "Состояние" и сведения о текущих известных проблемах, см. в разделе "Ожидающие" и "Известные проблемы".



