gfoidl.Gtk4.Extensions 2.2.0

dotnet add package gfoidl.Gtk4.Extensions --version 2.2.0
                    
NuGet\Install-Package gfoidl.Gtk4.Extensions -Version 2.2.0
                    
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="gfoidl.Gtk4.Extensions" Version="2.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="gfoidl.Gtk4.Extensions" Version="2.2.0" />
                    
Directory.Packages.props
<PackageReference Include="gfoidl.Gtk4.Extensions" />
                    
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 gfoidl.Gtk4.Extensions --version 2.2.0
                    
#r "nuget: gfoidl.Gtk4.Extensions, 2.2.0"
                    
#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.
#:package gfoidl.Gtk4.Extensions@2.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=gfoidl.Gtk4.Extensions&version=2.2.0
                    
Install as a Cake Addin
#tool nuget:?package=gfoidl.Gtk4.Extensions&version=2.2.0
                    
Install as a Cake Tool

Gtk4.Extensions

NuGet

General

Working with .NET and GTK 4 is done via GirCore.

GirCore has it's own build of cairo, but that cairo-wrapper

  • misses some features in the cairo API-surface
  • isn't documented
  • misses some convenience methods

Thus these extensions package for GTK 4 uses CairoSharp.

MSBuild properties

These properties are optional, and by default (false) they do nothing.

<PropertyGroup>
    <GtkWinNativeDir>C:\Program Files\msys64\ucrt64\bin</GtkWinNativeDir>
    <GtkWinCopyNativeLibs>false</GtkWinCopyNativeLibs>
</PropertyGroup>

When GtkWinCopyNativeLibs is set to true, then the native binaries are copied from the directory given by GtkWinNativeDir to the output directory.

This is for convenience when you want to package the application.

Extensions

ActionExtensions

Help with registering actions in the form of

public sealed class MainWindow : ApplicationWindow
{
    public MainWindow(/* ... */)
    {
        this.AddAction("saveAsPng", this.SaveAsPng);
    }

    private void SaveAsPng()
    {
        // ...
    }
}

DrawingAreaExtensions

  • setting the DrawingArea.SetDrawFunc for CairoSharp (instead of the GirCore cairo wrapper)
  • SaveAsPng to save the drawing area as PNG file
  • SaveAsPngWithFileDialog similar to the previous, just with a file dialog to choose the filename
  • AddContextMenuForFontChooser adds a context menu ("right-click menu") to allow choosing a (Pango) font
  • OnNotifySelected registers a signal the is triggered when the selected properrty is changed
  • SetExpression set an expression with a Func<IntPtr, string> propertyAccessor

Gtk4Constants

Provides some constants for GTK 4. See Gtk4Constants for the values.

WindowExtensions

  • HintAlignToParent tries to dock the windows to a parent on the given side (note: this won't work on Wayland, as there's no such functionality)
  • GetSurface gets the surface associated with the window
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
2.2.0 59 2/3/2026
2.1.0 186 12/7/2025
2.0.0 364 11/20/2025