Jon.Wpf.CustomControls
2.33.0
dotnet add package Jon.Wpf.CustomControls --version 2.33.0
NuGet\Install-Package Jon.Wpf.CustomControls -Version 2.33.0
<PackageReference Include="Jon.Wpf.CustomControls" Version="2.33.0" />
paket add Jon.Wpf.CustomControls --version 2.33.0
#r "nuget: Jon.Wpf.CustomControls, 2.33.0"
// Install Jon.Wpf.CustomControls as a Cake Addin #addin nuget:?package=Jon.Wpf.CustomControls&version=2.33.0 // Install Jon.Wpf.CustomControls as a Cake Tool #tool nuget:?package=Jon.Wpf.CustomControls&version=2.33.0
Jon.WPF.CustomControls
Welcome to Jon.WPF.CustomControls, a .NET 7.0/6.0 WPF C# custom control library. This library aims to provide an assortment of WPF controls to enhance your application's user interface.
Help me make this a comprehensive set of useful controls. Contributions are welcome. Submit suggestions and please submit issues if you find them and I'll fix them.
Table of Contents
About
Jon.WPF.CustomControls is a collection of custom, reusable WPF controls. It is built with .NET 7.0 and intended to provide developers with controls that are commonly used but not included in the standard WPF toolkit.
RECOMMENDATIONS ARE WELCOME AND WANTED!!
Getting Started
- Open Visual Studio 2023 or later.
- Open your solution in Visual Studio.
- Open the NuGet Package Manager Console (Tools → NuGet Package Manager → Package Manager Console).
- Type
Install-Package Jon.Wpf.CustomControls
and press Enter to download and install the Jon.WPF.CustomControls NuGet package. - Build your solution to ensure everything is set up correctly.
- Start using the controls in your projects!
To use the controls, you want to add a reference to the library for your project, plus you will also need to load the default styles for the controls.
To load the default styles, add the following to your App.xaml file:
<Application
x:Class="ControlDriver.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<Application.Resources>
<!-- HERE --- >
<ResourceDictionary Source="pack://application:,,,/Jon.Wpf.CustomControls;component/Themes/Generic.xaml" />
<!-- HERE --- >
</Application.Resources>
</Application>
Usage
Reference the Jon.WPF.CustomControls.dll
in your WPF project. You can now use the controls by adding the appropriate namespace to your XAML files.
xmlns:custom="clr-namespace:Jon.WPF.CustomControls;assembly=Jon.WPF.CustomControls"
You can then use the controls like any other WPF control:
<custom:NumericUpDown x:Name="MyNumericUpDown" />
New OpenAI ChatGPT Integrated Controls
New TimeTextBox
New Expanded Capabilities includes a CollectionControlWindow where items in the collection will each display their properties in it's propertygrid.
New Calculator Control!
Controls
This library currently includes the following controls:
- SentimentAnalysisLabel: Negative/Positive Sentiment Analysis Text you can bind to text for sentiment.
- SummarizationTextBlock: Summarization of bound text from Chat GPT.
- AutoCompleteTextBox: A textbox control that automatically displays suggestions based on the filtered text typed.
- NumericUpDown: A NumericUpDown control that allows users to increase or decrease a numeric value with up and down buttons. NEW
- WizardControl: A control that presents a series of WizardPages to assist the user in performing a task or series of tasks. NEW
- WizardPage: A page within a WizardControl that contains content to guide the user through a specific part of the task. NEW
- RgbColorPicker: A color picker control that allows users to select a color using RGB (Red, Green, Blue) components.
- ColorPaletteControl: A color palette control that provides a grid of colors for the user to choose from.
- RatingControl: A control for rating items on a scale.
- TimePicker: A time selection control.
- TimeTextBox: A time selection control.
- TtsReader: A text to speech reading control.
- ToggleSwitch: A binary selection control, similar to a checkbox, but with a sleek design.
- WatermarkTextbox: A text box with a placeholder text feature, also known as watermark.
- PersonPicture: Person Icon Status control.
- PropertyGrid: A control for displaying and editing the properties of an object. Includes CollectionControl
- TerminalControl: A console terminal or a terminal for your application as well.
- Calculator: A drop-in working calculator control.
- TextToSqlQueryTextBlock: Translates English text into SQL queries using GPT-3 and displays the result. NEW
Please refer to each control's documentation for more details.
Remember to create the corresponding `WizardControl
Converters
Converters are used in WPF to transform data from one type to another. They are often used in data binding scenarios, where the source data may not be in the correct format for the target property. Here are the converters included in this library:
BoolToIntConverter
: Converts a boolean value to an integer. Typically used for scenarios where a boolean value needs to be represented as an integer.BoolToTranslateConverter
: Converts a boolean value to a translation transform. Useful for moving UI elements based on a boolean condition.BoolToVisibilityConverter
: Converts a boolean value to aVisibility
enumeration. Commonly used to show or hide UI elements based on a boolean condition.BoolToCollapsedConverter
: Similar toBoolToVisibilityConverter
, but collapses the UI element when the boolean isfalse
.ToggleSwitchForegroundConverter
: Used specifically for theToggleSwitch
control to determine the foreground color based on the switch's state.ToggleSwitchBackgroundConverter
: Used specifically for theToggleSwitch
control to determine the background color based on the switch's state.ToggleSwitchHandleColorConverter
: Used specifically for theToggleSwitch
control to determine the handle color based on the switch's state.ColorToBrushConverter
: Converts aColor
to aBrush
. Useful for binding scenarios where aBrush
is required but the source is aColor
.BrushToColorConverter
: Converts aBrush
to aColor
. Useful for binding scenarios where aColor
is required but the source is aBrush
.HalfSizeConverter
: Takes a size and returns half of it. Useful for positioning or sizing elements relative to others.DateTimeToAmPmConverter
: Converts aDateTime
to a string representing either "AM" or "PM".SelectorValuesToDateTimeConverter
: Converts selector values to aDateTime
. Used in theTimePicker
control.ColorEqualityConverter
: Checks if two colors are equal. Useful for color comparison scenarios.ColorToNameConverter
: Converts aColor
to its name as a string, if it has one.PropertyNameConverter
: Converts a property name to a more user-friendly format.
Please note that the exact behavior of each converter may depend on its implementation and usage in the controls.
Contributing
We welcome contributions from everyone. If you have controls that are not already in this toolkit and would like to help make them available to others, also welcome. I'd love to build this out to include a wide variety of reusable tools. Before you start, please see the CONTRIBUTING.md for details on how to contribute to this project.
License
This project is licensed under the MIT License. For more information, see the LICENSE file.
Contact
If you have any questions, feel free to reach out to us. You can contact us via email or create an issue on our GitHub page. We'll do our best to respond as quickly as possible.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0-windows7.0 is compatible. net7.0-windows was computed. net7.0-windows7.0 is compatible. net8.0-windows was computed. |
-
net6.0-windows7.0
- Microsoft.Xaml.Behaviors.Wpf (>= 1.1.39)
- System.Speech (>= 7.0.0)
-
net7.0-windows7.0
- Microsoft.Xaml.Behaviors.Wpf (>= 1.1.39)
- System.Speech (>= 7.0.0)
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.33.0 | 886 | 6/30/2023 |
2.32.0 | 605 | 6/24/2023 |
2.31.0 | 626 | 6/19/2023 |
2.2.0 | 628 | 6/14/2023 |
2.1.0 | 607 | 6/11/2023 |
2.0.0 | 609 | 6/4/2023 |
1.99.0 | 621 | 6/2/2023 |
1.98.0 | 654 | 5/31/2023 |
1.97.0 | 614 | 5/29/2023 |
1.96.0 | 611 | 5/29/2023 |
1.95.0 | 594 | 5/28/2023 |
1.94.0 | 614 | 5/27/2023 |
1.93.0 | 634 | 5/25/2023 |
1.92.0 | 613 | 5/23/2023 |
1.91.0 | 601 | 5/23/2023 |
1.81.0 | 617 | 5/22/2023 |
1.80.0 | 619 | 5/22/2023 |
1.79.0 | 615 | 5/22/2023 |
1.78.0 | 645 | 5/21/2023 |
1.77.0 | 647 | 5/21/2023 |
1.76.0 | 648 | 5/21/2023 |
1.74.0 | 629 | 5/21/2023 |
1.72.0 | 640 | 5/20/2023 |
1.71.0 | 615 | 5/20/2023 |
1.70.0 | 626 | 5/20/2023 |
1.65.0 | 609 | 5/18/2023 |
1.61.0 | 655 | 5/17/2023 |
1.9.0 | 591 | 5/23/2023 |
1.6.0 | 626 | 5/17/2023 |
1.5.0 | 723 | 5/16/2023 |
1.3.0 | 610 | 5/16/2023 |
1.2.0 | 616 | 5/15/2023 |
1.1.0 | 607 | 5/15/2023 |
1.0.0 | 608 | 5/15/2023 |
Removed unit tests. They were preventing the nuspec packager from creating nuget package.