Awesome
<img src="https://github.com/Krypton-Suite/Standard-Toolkit/blob/master/Krypton.png?raw=true"> Standard Toolkit
<!-- Start Document Outline -->- NuGet Information
- Discord Server
- Version History
- Breaking Changes
- Known Issues & Workarounds
NuGet Information
Nightly
Canary
Stable
Keep up-to-date here
=======
Documentation
The online help will give an overview of what the toolkit is capable of.
<a href="https://krypton-suite.github.io/Standard-Toolkit-Online-Help/Source/Help/Output/index.html"><img src="https://img.shields.io/badge/Documentation-Online Help-9cf.svg?style=flat-square" alt="Online Help" /></a>
If you require the full API reference, you can download the latest version by clicking the link below.
<a href="https://github.com/Krypton-Suite/Help-Files/releases"><img src="https://img.shields.io/badge/Documentation-API Reference-9cf.svg?style=flat-square" alt="API Reference" /></a>
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:
<table> <tr> <td width="200px"> <a href="https://www.jetbrains.com/"> <center><img src="https://github.com/Krypton-Suite/Documentation/blob/main/Assets/Supporter-Logos/jetbrains-logo.png?raw=true" /></center> </a> </td> <td width="200px"> <a href="https://www.yourkit.com/"> <center><img src="https://github.com/Krypton-Suite/Documentation/blob/main/Assets/Supporter-Logos/yourkit-logo.png?raw=true" /></center> </a> </td> </tr> <tr> <td width="200px"> JetBrains provides cutting-edge IDE and developer productivity tools. </td> <td width="200px"> YourKit provides a market-leading intelligent <a href="https://www.yourkit.com/features/">Java Profiler</a> and <a href="https://www.yourkit.com/dotnet/features/">.NET Profiler</a>. </td> </tr> </table>=======
Toolkit Example images
Follow the links to see the different objects and layouts that this framework allows you to do: Toolkit Demos
=======
Discord Server
<a href="https://discord.gg/CRjF6fY" alt="Join our Krypton Toolkit community Discord server"><img src="https://img.shields.io/badge/Discord-Join%20our%20server-7289DA?logo=discord&style=flat-square" /></a>
=======
<!--# Project & item templates <a href="https://tinyurl.com/StandardToolkitTemplates" alt="Download project & item templates"><img src="https://img.shields.io/badge/Templates-Download%20project%20%26%20item%20templates-blueviolet?style=flat-square" /></a> =======-->Version History
<a href="https://github.com/Krypton-Suite/Standard-Toolkit/blob/master/Documents/Changelog/Changelog.md"><img src="https://img.shields.io/badge/Version History-Changelog-brightgreen.svg?style=flat-square" /></a>
=======
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
toKryptonMessageBoxDep
- The introduction of new Parameters elements to the
KryptonMessageBox
is now supported in theKryptonMessageBoxDep
class - This is so that the
KryptonMessageBox
gets back to being a drop in replacement for the WinFormMessageBox
- And a start of the introduction of the
KryptonMessageDialog
implementation of the UWPMessageDialog
- The introduction of new Parameters elements to the
- #1424, Breaking Change
KryptonMessageBox
does not obey tab characters likeMessageBox
- The optional
ContentAlignment
for aKryptonMessageBox.Show
command is no longer possible.
- The optional
- #1356, AppButton colours don't change while switching themes
- See https://github.com/Krypton-Suite/Standard-Toolkit/issues/1356#issuecomment-2039412890
RibbonAppButton
has becomeRibbonFileAppButton
- Addition
RibbonFileAppTab
to hold the tab text (Defaults toFile
) - Colours for the
FileAppTab
have been moved into theStateCommon
area
- #1206, Remove the
Font Size
(as it is already covered by the actual font !) - #1224, Move
GlobalPaletteMode
intoGlobalPalette
and rename- BaseFont is now part of the KryptonManager class, and will override the applied palette font(s)
CustomPalette
must be derived from theKryptonCustomPaletteBase
classBasePaletteMode
has been removed fromKryptonCustomPaletteBase
class
- #124, When setting AllowFormChrome = false, then the Form Bar should still be Theme rendered
AllowFormChrome
has been removed and replaced withUseThemeFormChromeBorderWidth
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 toState#####MultiSelect
to reflect usage - New ReeView Designer value
MultiSelect
allows drawing of selected items and retrieval viaCheckedNodes
- Designer values named
- #1268, Many Krypton Controls have a
CornerRoundingRadius
that overrides the State#### Node Rounding values. Please remove!CornerRoundingRadius
overrides ONLY theStateCommon.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
- The Option to use
- #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.
- Added property
- #1424, [Breaking Change]
KryptonMessageBox
does not obey tab characters likeMessageBox
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
- https://github.com/Krypton-Suite/Standard-Toolkit/issues/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 ofMessageBoxButtons
but backward compatible with .NET Framework 4.6.x onwards.
Palette usages
KryptonPalette
has becomeKryptonCustomPaletteBase
to better signify it's usage.IPalette
has been removed, and the usage ofPaletteBase
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 APIApplication.SetCompatibleTextRenderingDefault
having a value oftrue
. Please set it to false.
- Some controls can display
-
#665 - Workaround add
net48
ornet481
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.
<center><img src="https://github.com/Krypton-Suite/Documentation/blob/main/Assets/Standard-Toolkit/KryptonToolkitExampleForm.gif?raw=true" /></center> <center><img src="https://github.com/Krypton-Suite/Documentation/blob/main/Assets/Standard-Toolkit/KryptonToolkitExampleGroup.gif?raw=true" /></center> <center><img src="https://github.com/Krypton-Suite/Documentation/blob/main/Assets/Standard-Toolkit/KryptonToolkitProgressBarExample.gif?raw=true" /></center>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.
<center><img src="https://github.com/Krypton-Suite/Documentation/blob/main/Assets/Standard-Toolkit/KryptonNavigatorExample.gif?raw=true" /></center>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.
<center><img src="https://github.com/Krypton-Suite/Documentation/blob/main/Assets/Standard-Toolkit/KryptonWorkspaceExample.gif?raw=true" /></center>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.
<center><img src="https://github.com/Krypton-Suite/Documentation/blob/main/Assets/Standard-Toolkit/KryptonDockingExampleCustomised.gif?raw=true" /></center>