PleasantUI 5.0.0-alpha2

This is a prerelease version of PleasantUI.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package PleasantUI --version 5.0.0-alpha2                
NuGet\Install-Package PleasantUI -Version 5.0.0-alpha2                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PleasantUI" Version="5.0.0-alpha2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PleasantUI --version 5.0.0-alpha2                
#r "nuget: PleasantUI, 5.0.0-alpha2"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install PleasantUI as a Cake Addin
#addin nuget:?package=PleasantUI&version=5.0.0-alpha2&prerelease

// Install PleasantUI as a Cake Tool
#tool nuget:?package=PleasantUI&version=5.0.0-alpha2&prerelease                

GitHub License GitHub repo size Nuget GitHub release (with filter)

<img align="center" src="https://github.com/Onebeld/PleasantUI/assets/44552715/c8354beb-5b4b-4ce6-acbb-eb2b5e6a23e1">

PleasantUI

Pleasant UI is a graphical user interface library for Avalonia with its own controls. Previously, it was only available as part of the Regul and Regul Save Cleaner projects. This project has existed since at least 2021.

This library continues the OlibUI tradition of releasing only later versions, not the very first.

This library is mostly focused on performance, lightness, and beauty, compared to many others.

This library is fully compatible with AOT compilation, and does not need to be added to rd.xml

Getting Started

Install this library using NuGet, or copy the code to paste into your project file:

<PackageReference Include="PleasantUI" Version="4.0.1" />

Setup

For your application, add PleasantTheme to your styles:

<Application xmlns="https://github.com/avaloniaui"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             x:Class="YourApplication.App">
    <Application.Styles>
        <PleasantTheme />
    </Application.Styles>
</Application>

This library automatically loads settings and saves them when the program is finished (note, for mobile projects you need to save settings manually)

Make sure that in the application class file, the XAML loader is in the overridden initialization method. Otherwise, you will get an error that the program is not initialized when you run the program.

using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
using YourApplication.ViewModels;
using YourApplication.Views;

namespace YourApplication;

public partial class App : Application
{
    // That's exactly what you need to do, as shown below
    public override void Initialize()
    {
        AvaloniaXamlLoader.Load(this);
    }

    public override void OnFrameworkInitializationCompleted()
    {
        if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
        {
            desktop.MainWindow = new MainWindow
            {
                DataContext = new MainWindowViewModel(),
            };
        }

        base.OnFrameworkInitializationCompleted();
    }
}

Next, we need to modify the main window so that it inherits from PleasantWindow:

using PleasantUI.Controls;

namespace YourApplication.Views;

public partial class MainWindow : PleasantWindow
{
    public MainWindow()
    {
        InitializeComponent();
    }
}

Make sure that the (A)XAML file of the main window has a PleasantWindow object instead of Window:

<PleasantWindow xmlns="https://github.com/avaloniaui"
                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"
                mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
                x:Class="YourApplication.Views.MainWindow"
                Title="Avalonia Application">
</PleasantWindow>

Done! Now you can build your applications with this library.

Screenshots

Regul Save Cleaner (WIP)

image

OlibKey (WIP)

image

Credits

The editors I used to create this project:

<img src="https://github.com/Onebeld/PleasantUI/assets/44552715/c6bcf430-4153-4f72-bcca-e97e5cdce491" width="360" align="right"/>

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on PleasantUI:

Package Downloads
PleasantUI.DataGrid

UI library for Avalonia

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
5.0.0-alpha3 75 11/4/2024
5.0.0-alpha2 68 11/4/2024
5.0.0-alpha1 95 9/20/2024
4.1.0-beta3 89 7/4/2024
4.1.0-beta2 98 6/19/2024
4.1.0-beta1 105 4/25/2024
4.0.1 165 3/27/2024
4.0.0 134 2/18/2024
4.0.0-alpha.3 81 1/29/2024
4.0.0-alpha.2 57 1/27/2024
4.0.0-alpha.1 121 1/6/2024
3.1.1 254 11/24/2023
3.1.0 118 10/8/2023
3.0.12 100 10/7/2023
3.0.11 153 10/3/2023
3.0.10 153 9/30/2023
3.0.9 194 7/26/2023
3.0.8 177 7/10/2023
3.0.7 171 7/10/2023
3.0.6 126 7/1/2023
3.0.5 100 6/27/2023
3.0.4 116 6/25/2023
3.0.3 110 6/21/2023
3.0.2 107 6/18/2023
3.0.1 105 6/16/2023
3.0.0 108 6/14/2023