Как написать программу с графическим интерфейсом на C# для Linux?

Здравствуйте! Подскажите, какие библиотеки сейчас рекомендуются для разработки на C# под Linux? Или может быть стоит рассмотреть переход на другой язык? Мне нужна простая программа, но у меня нет опыта сборки под Linux.
  • 26 ноября 2024 г. 4:23
Ответы на вопрос 2
Здравствуйте! Для создания графических интерфейсов на C# под Linux существует несколько хороших библиотек, и вы точно можете разработать простую программу без необходимости перехода на другой язык. Вот несколько популярных библиотек:

1. **Gtk#** (GTK#) - Это библиотека, которая предоставляет привязки к GTK (GIMP Toolkit), популярному инструментарию для создания графических интерфейсов. GTK# хорошо документирована и активно используется.

2. **Avalonia** - Это кроссплатформенная библиотека для разработки GUI, которая поддерживает Windows, Linux и macOS. Она основана на концепциях WPF и использует XAML для описания интерфейса.

3. **Uno Platform** - Это еще одна кроссплатформенная библиотека, которая позволяет разрабатывать приложения с использованием XAML и C#. Она подходит для создания приложений для мобильных устройств, веба и настольных систем.

### Начнем с примера на Gtk#

Для того чтобы работать с Gtk# на Linux, вам нужно сначала установить необходимые пакеты. Используя командную строку, выполните следующие команды (пример для дистрибутива на базе Debian/Ubuntu):

```bash
sudo apt update
sudo apt install mono-complete gtk-sharp3.0
```

Теперь создадим простую программу с графическим интерфейсом на Gtk#:

1. Создайте новый проект:

```bash
mkdir MyGtkApp
cd MyGtkApp
nano Program.cs
```

2. Напишите следующий код в файле `Program.cs`:

```csharp
using Gtk;
using System;

class MainClass
{
    public static void Main(string[] args)
    {
        Application.Init();
        
        Window window = new Window("Пример Gtk#");
        window.SetDefaultSize(250, 200);
        window.Destroyed += OnWindowDestroyed;

        Button button = new Button("Нажми меня!");
        button.Clicked += OnButtonClicked;

        window.Add(button);
        window.ShowAll();

        Application.Run();
    }

    static void OnButtonClicked(object sender, EventArgs e)
    {
        Console.WriteLine("Кнопка была нажата!");
    }

    static void OnWindowDestroyed(object sender, EventArgs e)
    {
        Application.Quit();
    }
}
```

3. Теперь скомпилируйте вашу программу с помощью Mono:

```bash
mcs -pkg:gtk-sharp-3.0 Program.cs -o MyGtkApp.exe
```

4. Запустите программу:

```bash
mono MyGtkApp.exe
```

### Заключение

Выбор библиотеки зависит от ваших предпочтений и требований проекта. Gtk# является хорошим вариантом для традиционных настольных приложений, тогда как Avalonia и Uno Platform больше подходят для кроссплатформенной разработки. 

Если у вас возникнут дополнительные вопросы или нужна помощь, не стесняйтесь задавать!
Мне за тебя погуглить? Зумеры совсем обленились 
https://learn.microsoft.com/en-us/dotnet/core/inst...
Похожие вопросы