Krypton.Toolkit.Suite.Extended.BottomSheet.Canary 110.26.9.264-beta

This is a prerelease version of Krypton.Toolkit.Suite.Extended.BottomSheet.Canary.
dotnet add package Krypton.Toolkit.Suite.Extended.BottomSheet.Canary --version 110.26.9.264-beta
                    
NuGet\Install-Package Krypton.Toolkit.Suite.Extended.BottomSheet.Canary -Version 110.26.9.264-beta
                    
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="Krypton.Toolkit.Suite.Extended.BottomSheet.Canary" Version="110.26.9.264-beta" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Krypton.Toolkit.Suite.Extended.BottomSheet.Canary" Version="110.26.9.264-beta" />
                    
Directory.Packages.props
<PackageReference Include="Krypton.Toolkit.Suite.Extended.BottomSheet.Canary" />
                    
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 Krypton.Toolkit.Suite.Extended.BottomSheet.Canary --version 110.26.9.264-beta
                    
#r "nuget: Krypton.Toolkit.Suite.Extended.BottomSheet.Canary, 110.26.9.264-beta"
                    
#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 Krypton.Toolkit.Suite.Extended.BottomSheet.Canary@110.26.9.264-beta
                    
#: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=Krypton.Toolkit.Suite.Extended.BottomSheet.Canary&version=110.26.9.264-beta&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Krypton.Toolkit.Suite.Extended.BottomSheet.Canary&version=110.26.9.264-beta&prerelease
                    
Install as a Cake Tool

Krypton Bottom Sheet

Material-inspired bottom sheets for WinForms using the Krypton Toolkit.

Features

  • Service-style API via KryptonBottomSheetManager
  • Modal and non-modal display modes
  • Non-blocking OpenAsync with Task completion on dismiss
  • Typed and untyped content data contracts
  • Configurable backdrop scrims (Dim, EnhancedDim, SoftGradient, Blur)
  • Slide animations with easing, separate open/close durations, and backdrop fade
  • Drag handle with distance and velocity dismiss
  • Optional snap heights in pixels or viewport percentages
  • Auto-height and fixed-height modes
  • Focus trap, focus restore, and selector-based autofocus
  • Owner disable/enable during modal sheets
  • Conflict handling: throw, animated replace, or queue
  • Chrome controls: KryptonBottomSheetHeader, KryptonBottomSheetList
  • DPI-aware metrics and wide-screen max width centering
  • Owner tracking for move/resize
  • Global defaults via KryptonBottomSheetDefaultOptions
  • Designer support with toolbox bitmap and smart tags

Quick start

KryptonBottomSheetManager.Open<FileBottomSheetContent>(
    owner: this,
    config: new KryptonBottomSheetConfig
    {
        AccessibleName = "File actions",
        Data = new FileSheetData("cat-picture.jpeg"),
        HeightMode = BottomSheetHeightMode.Auto,
    },
    configure: sheetRef =>
    {
        sheetRef.AfterDismissed += (_, args) =>
        {
            if (args.Result is string action)
            {
                // handle action
            }
        };
    });

Use the configure callback for modal sheets so AfterDismissed is wired before the modal loop begins.

Header and list chrome

var header = new KryptonBottomSheetHeader { Title = "Share" };
var list = new KryptonBottomSheetList();
list.SetItems(new[]
{
    new BottomSheetListItem { Text = "Copy link", Result = "copy" },
    new BottomSheetListItem { Text = "Email", Result = "email" },
});

var content = new UserControl();
content.Controls.Add(list);
content.Controls.Add(header);

KryptonBottomSheetManager.Open(this, content, configure: sheetRef =>
{
    header.BindDismiss(sheetRef);
    list.BindDismiss(sheetRef);
});

Typed data

public sealed class FileSheetContent : UserControl, IKryptonBottomSheetContent<FileSheetData>
{
    public void OnBottomSheetOpened(KryptonBottomSheetRef sheetRef, FileSheetData data)
    {
        // use typed data
    }
}

KryptonBottomSheetManager.Open<FileSheetContent, FileSheetData>(
    this,
    new FileSheetData("cat-picture.jpeg"));

Global defaults

KryptonBottomSheetDefaultOptions.Default = new KryptonBottomSheetConfig
{
    BackdropStyle = BottomSheetBackdropStyle.SoftGradient,
    TrapFocus = true,
    MaxSheetWidth = 640,
    ConflictMode = BottomSheetConflictMode.Replace,
};

Conflict modes

// Replace the open sheet with an animated close
config.ConflictMode = BottomSheetConflictMode.Replace;

// Queue and open after the current sheet dismisses
config.ConflictMode = BottomSheetConflictMode.Queue;

Non-modal

KryptonBottomSheetManager.OpenNonModal(this, content, config, sheetRef =>
{
    sheetRef.AfterDismissed += (_, _) => { };
});

Async

object? result = await KryptonBottomSheetManager.OpenAsync(this, content);

OpenAsync shows the sheet without blocking the caller and disables the owner until dismiss.

See also

Product Compatible and additional computed target framework versions.
.NET net8.0-windows7.0 is compatible.  net9.0-windows was computed.  net9.0-windows7.0 is compatible.  net10.0-windows was computed.  net10.0-windows7.0 is compatible.  net11.0-windows7.0 is compatible. 
.NET Framework net472 is compatible.  net48 is compatible.  net481 is compatible. 
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
110.26.9.264-beta 53 9/21/2026
110.26.8.236-beta 84 8/24/2026
110.26.7.201-beta 91 7/20/2026