Consolonia.Blazor
11.2.1-alpha-664
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.
See the version list below for details.
dotnet add package Consolonia.Blazor --version 11.2.1-alpha-664
NuGet\Install-Package Consolonia.Blazor -Version 11.2.1-alpha-664
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.1-alpha-664" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Consolonia.Blazor --version 11.2.1-alpha-664
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Consolonia.Blazor, 11.2.1-alpha-664"
#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 Consolonia.Blazor as a Cake Addin #addin nuget:?package=Consolonia.Blazor&version=11.2.1-alpha-664&prerelease // Install Consolonia.Blazor as a Cake Tool #tool nuget:?package=Consolonia.Blazor&version=11.2.1-alpha-664&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Consolonia.Blazor
This package provides the ability to use Blazor .razor files to create Consolonia applications.
- Use ⚡ Blazor syntax for Avalonia apps
- 😎 Simpler syntax than XAML
- 🪄 IntelliSense support
- Get free 🔥 Hot Reload support on-top
- See https://github.com/Epictek/Avalonia-Blazor-Bindings
Background
Consolonia is a TUI (Text User Interface) (GUI Framework) implementation for Avalonia UI
Showcase (click picture to see video)
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!
@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 | Versions 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- Avalonia (>= 11.2.1)
- Avalonia.Desktop (>= 11.2.1)
- BlazorBindingsAvalonia (>= 0.1.2)
- Consolonia (>= 11.2.1-alpha-664)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.