Consolonia.Blazor 11.2.5-beta.1065

This is a prerelease version of Consolonia.Blazor.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package Consolonia.Blazor --version 11.2.5-beta.1065
                    
NuGet\Install-Package Consolonia.Blazor -Version 11.2.5-beta.1065
                    
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="Consolonia.Blazor" Version="11.2.5-beta.1065" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Consolonia.Blazor" Version="11.2.5-beta.1065" />
                    
Directory.Packages.props
<PackageReference Include="Consolonia.Blazor" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Consolonia.Blazor --version 11.2.5-beta.1065
                    
#r "nuget: Consolonia.Blazor, 11.2.5-beta.1065"
                    
#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.
#addin nuget:?package=Consolonia.Blazor&version=11.2.5-beta.1065&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Consolonia.Blazor&version=11.2.5-beta.1065&prerelease
                    
Install as a Cake Tool

Consolonia.Blazor

This package provides the ability to use Blazor .razor files to create Consolonia applications.

Background

Consolonia is a TUI (Text User Interface) (GUI Framework) implementation for Avalonia UI

Showcase (click picture to see video)

datagridpic

Example Razor file

Things to note:

  • Method binding to code behind
  • Conditional layout of elements
  • Full intellisense for renaming going to code behind autocomplete etc.
  • injection of INavigation so you can push and pop views off of the nav stack
  • injection of IClassicDesktopStyleApplicationLifetime so you can access Args and shutdown the app.
  • HOT RELOAD. simple save the file and your view gets rebuilt and rerendered!

blazor

@page "/"
@inject INavigation navigation
@inject IClassicDesktopStyleApplicationLifetime lifetime

@namespace Example.Blazor.Components

<Window Title="Blazor Bindings for Consolonia" Topmost="true">
     <StackPanel Orientation="Orientation.Vertical" VerticalAlignment="VerticalAlignment.Center">
        @if (showCounter)
        {
            <TextBlock HorizontalAlignment="HorizontalAlignment.Center">Counter: @CounterText</TextBlock>
        }
        <StackPanel Orientation="Orientation.Vertical" HorizontalAlignment="HorizontalAlignment.Center" Margin="@Thickness.Parse("4")">
            <Button OnClick="@OnIncrement">Increment counter support</Button>
            <Button OnClick="@OnToggleCounter">@ToggleText</Button>
            <Button OnClick="@OnMessageBox">Message Box</Button>
            <Button OnClick="@OnGotoSubPage">Go to SubPage</Button>
            <Button OnClick="@OnExit">Exit</Button>
        </StackPanel>
    </StackPanel> 
</Window>

@code {
    int counter = 0;
    bool showCounter = true;

    string CounterText => counter switch
    {
        0 => "Not clicked",
        1 => $"Clicked 1 time",
        _ => $"Clicked {counter} times"
    };

    string ToggleText => showCounter ? "Hide Counter" : "Show Counter";

    void OnIncrement()
        => counter++;

    void OnToggleCounter()
        => showCounter = !showCounter;

    void OnGotoSubPage()
        => navigation.PushAsync<SubPage>();

    async void OnMessageBox(RoutedEventArgs args)
    {
        await new MessageBox()
            .ShowDialogAsync((AC.Control)args.Source!, "Hello, Blazor!", "Blazor Bindings for Consolonia");
    }

    void OnExit()
       => lifetime.Shutdown();
}
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
11.2.5-beta.1090 110 6/17/2025
11.2.5-beta.1077 111 6/3/2025
11.2.5-beta.1075 111 6/2/2025
11.2.5-beta.1065 121 4/8/2025
11.2.5-beta.1050 101 3/28/2025
11.2.5-beta.1047 98 3/27/2025
11.2.5-beta.1044 110 3/27/2025
11.2.5-beta.1026 132 3/23/2025
11.2.5-beta.1023 127 3/22/2025
11.2.5-beta.1018 127 3/22/2025
11.2.5-beta.1016 129 3/22/2025
11.2.5-beta.1008 46 3/22/2025
11.2.5-beta.1004 51 3/21/2025
11.2.5-beta.988 44 3/15/2025
11.2.5-beta.965 66 3/1/2025
11.2.5-beta.959 58 2/28/2025
11.2.3-beta.954 68 2/27/2025
11.2.3-beta.946 61 2/24/2025
11.2.3-beta.936 60 2/7/2025
11.2.3-beta.920 65 2/6/2025
11.2.3-beta.906 68 2/2/2025
11.2.3-beta.902 68 2/1/2025
11.2.3-beta.887 56 1/27/2025
11.2.3-beta.883 55 1/27/2025
11.2.3-beta.876 68 1/26/2025
11.2.3-beta.874 58 1/26/2025
11.2.3-beta.866 52 1/24/2025
11.2.3-beta.862 53 1/24/2025
11.2.3-beta.860 50 1/23/2025
11.2.3-beta.849 56 1/23/2025
11.2.3-beta.845 52 1/23/2025
11.2.3-beta.841 56 1/22/2025
11.2.3-beta.838 54 1/20/2025
11.2.3-beta.826 53 1/19/2025
11.2.3-beta.819 47 1/18/2025
11.2.3-beta.802 48 1/17/2025
11.2.3-beta.798 45 1/17/2025
11.2.3-beta.793 45 1/17/2025
11.2.3-beta.789 52 1/17/2025
11.2.3-beta.784 52 1/16/2025
11.2.1-alpha-782 47 1/16/2025
11.2.1-alpha-770 48 1/15/2025
11.2.1-alpha-764 30 1/15/2025
11.2.1-alpha-756 44 1/14/2025
11.2.1-alpha-748 61 1/10/2025
11.2.1-alpha-713 61 1/6/2025
11.2.1-alpha-711 85 1/4/2025
11.2.1-alpha-709 82 1/4/2025
11.2.1-alpha-701 85 1/4/2025
11.2.1-alpha-698 81 1/3/2025
11.2.1-alpha-678 85 1/1/2025
11.2.1-alpha-668 56 12/26/2024
11.2.1-alpha-664 51 12/26/2024
11.2.1-alpha-661 57 12/26/2024
11.2.1-alpha-652 61 12/25/2024
11.2.1-alpha-648 60 12/25/2024
11.2.1-alpha-646 59 12/25/2024
11.2.1-alpha-631 60 12/24/2024
11.2.1-alpha-626 60 12/23/2024
11.2.1-alpha-614 52 12/23/2024
11.2.1-alpha-606 58 12/21/2024
11.2.1-alpha-604 69 12/20/2024
11.2.1-alpha-598 68 12/19/2024
11.2.1-alpha-595 61 12/17/2024
11.2.1-alpha-593 61 12/17/2024
11.2.1-alpha-579 73 12/15/2024
11.2.1-alpha-577 71 12/15/2024
11.2.1-alpha-574 64 12/15/2024
11.2.1-alpha-568 69 12/15/2024
11.2.1-alpha-559 68 12/14/2024
11.2.1-alpha-547 70 12/13/2024
11.2.1-alpha-545 62 12/13/2024
11.2.1-alpha-540 64 12/13/2024
11.2.1-alpha-538 64 12/13/2024
11.2.1-alpha-523 65 12/8/2024
11.2.1-alpha-517 61 12/8/2024