Skip to content

An update to Component factory's krypton toolkit to support .NET Framework 4.6.2 - 4.8.1 to .NET 8 - 9

License

Notifications You must be signed in to change notification settings

Krypton-Suite/Standard-Toolkit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Standard Toolkit


NuGet Information

Nightly

Module Name Current Version Github License
Nuget GitHub
Nuget GitHub
Nuget GitHub
Nuget GitHub
Nuget GitHub

Canary

Module Name Current Version Github License
Nuget GitHub
Nuget GitHub
Nuget GitHub
Nuget GitHub
Nuget GitHub

Stable

Module Name Current Version Github License
Nuget GitHub
Nuget GitHub
Nuget GitHub
Nuget GitHub
Nuget GitHub
Nuget GitHub
Nuget GitHub
Nuget GitHub
Nuget GitHub
Nuget GitHub

Keep up-to-date here

=======

Documentation

The online help will give an overview of what the toolkit is capable of.

Online Help

If you require the full API reference, you can download the latest version by clicking the link below.

API Reference

Contributing to the Standard Toolkit

If you are interested in contributing to the Standard Toolkit, please read this article first.

=======

Package Support Information

Full information about support can be found here

Release Cadence

See Krypton Toolkit release cadence

Package Descriptions

To find out more about the differences between Nightly, Canary and Stable packages, please read this article.

Installing Pre-Release Versions

To find out how to install either Canary or Nightly versions, please check out this article.

=======

Supporters

Development of the Krypton Standard Toolkit is supported by these generous organisations:

JetBrains provides cutting-edge IDE and developer productivity tools. YourKit provides a market-leading intelligent Java Profiler and .NET Profiler.

=======

Toolkit Example images

Follow the links to see the different objects and layouts that this framework allows you to do: Toolkit Demos

=======

Discord Server

=======

Version History

=======

Breaking Changes

V90.00 (2024-11-12 - Build 2411 - November 2024)

There are list of changes that have occurred during the development of the V90.00 version

  • #632, [Breaking Change] KryptonPropertyGrid should have a customisable back colour.
    • KryptonPropertyGrid now uses the State### sets like the rest of the controls.
    • Any build breaks in the designers can just be deleted, as the the colouring will be done by the State#### equivalents
  • #1435, Breaking Change Take KMB back to the Winform override (Remove Checkbox etc)
  • and #1432, Breaking Change placeholder Copy KryptonMessageBox to KryptonMessageBoxDep
    • The introduction of new Parameters elements to the KryptonMessageBox is now supported in the KryptonMessageBoxDep class
    • This is so that the KryptonMessageBox gets back to being a drop in replacement for the WinForm MessageBox
    • And a start of the introduction of the KryptonMessageDialog implementation of the UWP MessageDialog
  • #1424, Breaking Change KryptonMessageBox does not obey tab characters like MessageBox
    • The optional ContentAlignment for a KryptonMessageBox.Show command is no longer possible.
  • #1356, AppButton colours don't change while switching themes
    • See #1356 (comment)
    • RibbonAppButton has become RibbonFileAppButton
    • Addition RibbonFileAppTab to hold the tab text (Defaults to File)
    • Colours for the FileAppTab have been moved into the StateCommon area
  • #1206, Remove the Font Size (as it is already covered by the actual font !)
  • #1224, Move GlobalPaletteMode into GlobalPalette and rename
    • BaseFont is now part of the KryptonManager class, and will override the applied palette font(s)
    • CustomPalette must be derived from the KryptonCustomPaletteBase class
    • BasePaletteMode has been removed from KryptonCustomPaletteBase class
  • #124, When setting AllowFormChrome = false, then the Form Bar should still be Theme rendered
    • AllowFormChrome has been removed and replaced with UseThemeFormChromeBorderWidth to better explain what it is doing
    • It means that a theme can get closer to "Material Design", and that the Title bar can still be themed (And rounded)
  • #215, KryptonTreeView Multi Node Select
    • Designer values named State####Pressed have changed to State#####MultiSelect to reflect usage
    • New ReeView Designer value MultiSelect allows drawing of selected items and retrieval via CheckedNodes
  • #1268, Many Krypton Controls have a CornerRoundingRadius that overrides the State#### Node Rounding values. Please remove!
    • CornerRoundingRadius overrides ONLY the StateCommon.Border.Rounding which is incorrect.
    • All CornerRoundingRadius have been removed
  • #1269, Remove AllowFormIntegrate to give consistent experience on all supported OS's
    • Please check the images in the issue.
    • To fix: just remove AllowFormIntegrate from your deisgner files
  • #1266, Since V 5.400, the QAT button is supposed to perform the close, therefore the Close Form button should not be visible
    • The RibbonAppButton has a new Designer field for setting the "Form Close Visible" to off by default

Support for .NET 6/7

As of V90.00, support for .NET 6 and 7 has been removed due to their release cadences.

KryptonButton Properties

Some properties previously found in the root such as, ShowSplitOption, UseAsADialogButton, UseAsUACElevationButton and UACShieldIconSize are now located in the Values section.

API Changes

If using KryptonAboutToolkit, please note that this has been superceded by KryptonAboutBox. Or if you use KryptonThemeBrowserForm, it has now been moved to KryptonThemeBrowser as the public facing API.

KryptonInputBox

The KryptonInputBox now uses the new KryptonInputBoxData API, to handle data.

Building the Toolkit

As of V90.00 support for longer path names will need to be enabled if you want to build the toolkit yourself. For more details on how to do this, please follow the instructions here.

V85.00 (2024-06-24 - Build 2406 - June 2024)

There are a list of changes that have occurred during the development of the V85.00 version

  • #1302, [Breaking Change] Font being used by "Professional" theme is pants !
    • The Option to use SystemDefault no longer exists a font rendering hint
  • #1508, [Breaking Change] ButtonSpec does not open assigned context menu when clicked.
    • Added property ShowDrop, which displays a drop down arrow on the button.
    • When a KryptonContextMenu is connected the menu is shown when the button is clicked.
    • When a WinForms ContextMenuStrip is connected the menu is shown when the button is clicked.
    • When both type of the above ContextMenus are connected the KryptonContextMenu takes precedence.
    • The ButtonSpec's Type property does not need setting to "Context" to display the menu.
  • #1424, [Breaking Change] KryptonMessageBox does not obey tab characters like MessageBox

V80.00 (2023-11-14 - Build 2311 - November 2023)

There are list of changes that have occurred during the development of the V80.00 version

Support for .NET Core 3.1 and .NET 5

As of V80.00, support for .NET Core 3.1 and .NET 5 has been removed due to their release cadences. It is strongly advised that you migrate your application to .NET 8, as the latest LTS version, or the slightly older .NET 6, if you require a more supported version. If you do not make these mitigations, the packages will fail to install when upgrading, if your project is configured to use either .NET Core 3.1 and .NET 5.

KryptonMessageBoxButtons

  • #728: Bring MessageBox States inline with latest .Net 6 by using a new KryptonMessageBoxButtons type, which is effectively the same as .NET 6 enum version of MessageBoxButtons but backward compatible with .NET Framework 4.6.x onwards.

Palette usages

  • KryptonPalette has become KryptonCustomPaletteBase to better signify it's usage.
  • IPalette has been removed, and the usage of PaletteBase throughout the toolkit is used; to ensure consistent usage.

Depreciation of KryptonManager.Strings

In a effort to support translations, KryptonManager.Strings is now obsolete. As such, the new KryptonLanguageManager will handle such strings.

=======

Known Issues & Workarounds

  • #1109 - KryptonPropertyGrid 'jagged' text

    • Some controls can display Jagged text when drawing. (i.e. ComboBox contents / PropertyGrid / Extended controls ) This is due to the usage of the Legacy API Application.SetCompatibleTextRenderingDefault having a value of true. Please set it to false.
  • #665 - Workaround add net48 or net481 to your <TargetFrameworks> if using .NET 6 or 7

  • .NET 6/7 Designer issues - If you are experiencing designer issues with your project, please refer to this for more information

  • URGENT: If anyone experiences "Double events" such as the one found here, please can you report it ASAP, so that they can be investigated. Thanks!

=======

Introduction

The Krypton Suite contains user interface components designed to make it quick and easy for developers to create professional looking applications. It provides the essential building blocks needed to create a consistent look and feel across all your products. You can use the built-in palettes to achieve the same appearance as industry standard applications such as Microsoft Office 2007/2010/2013 & Microsoft 365, Visual Studio 2010. Alternatively you can create your own custom palettes to create a completely unique user interface. The Krypton Suite consists of five products called Krypton Toolkit, Krypton Ribbon, Krypton Navigator, Krypton Workspace and Krypton Docking.

What is this Repository About?

  • Modifications by Peter Wagner (aka Wagnerp), Simon Coghlan (aka Smurf-IV), Giduac & Ahmed-Abdelhameed have been fixing and adding more capabilities to this toolkit.
  • There is also an Extensions project, which takes these base controls and add more useful complete controls (Currently outside the scope of this help). To find out more, please head to this link
  • All .Net Versions from 4.6.2 are catered for (interim releases, i.e. releases in-between Long Term Support (LTS) versions of .NET will only be supported for the duration of that particular version, usually 24 months.)
  • New versions of NuGet packages can be obtained via this link, or via your package manager by searching Krypton..
  • New, major versions are released annually, with patches if needed released throughout that period. Version 90 is expected to release in November 2024.
  • For tips on how to build the toolkit for yourself, please read the following article.

Contributing to this project

If you want to contribute to this project, please follow these guidelines. All contributions are welcome!

Individual Components

Krypton Toolkit

The Krypton Toolkit provides a set of basic user interface components for free. You can distribute the signed Krypton Toolkit assembly without charge or royalty with your own products. The Krypton Toolkit is great resource for speeding up development of professional looking applications. It works in tandem with the MenuStrip, StatusStrip and ToolStrip controls that come with .NET Framework controls. Using the Krypton Toolkit you can create a great looking application in just minutes.

Krypton Ribbon

The Krypton Ribbon is designed to mimic the look, feel and operation of the ribbon control seen in the Microsoft Office 2007/2010/2013/365 applications such as Word and Excel. It provides advanced capabilities including the quick access toolbar, contextual tabs and auto shrinking groups. With rich design time support and sample code you can be up and running with the ribbon in no time at all. It integrates with the Krypton Toolkit architecture to ensure a consistent look and feel.

Krypton Navigator

The Krypton Navigator is a user interface control that provides the user with a variety of ways to navigate around a set of pages. Think of it as a traditional TabControl on steroids. It has many different modes of operation allowing you to achieve exactly the right operation for your application. It integrates with the Krypton Toolkit architecture to ensure a consistent look and feel.

Krypton Workspace

The Krypton Workspace allows a document area to be created that the user can customise by dragging and dropping pages into new positions. Similar to the Visual Studio document area but with far greater flexibility and functionality. Each cell within the workspace uses an instance of the Krypton Navigator allowing a wide range of options for organising and displaying pages. It integrates with the Krypton Toolkit architecture to ensure a consistent look and feel.

Krypton Docking

The Krypton Docking set of components allow the user to drag and drop docking pages into new locations in order to customise the organisation of the application content. It allows this in a way similar to that of Visual Studio 2008/2010. Each docking area uses an instance of the Krypton Workspace allowing a wide range of options for organising and displaying pages. It integrates with the Krypton Toolkit architecture to ensure a consistent look and feel.