Jon.Wpf.CustomControls 1.99.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Jon.Wpf.CustomControls --version 1.99.0                
NuGet\Install-Package Jon.Wpf.CustomControls -Version 1.99.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="Jon.Wpf.CustomControls" Version="1.99.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Jon.Wpf.CustomControls --version 1.99.0                
#r "nuget: Jon.Wpf.CustomControls, 1.99.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.
// Install Jon.Wpf.CustomControls as a Cake Addin
#addin nuget:?package=Jon.Wpf.CustomControls&version=1.99.0

// Install Jon.Wpf.CustomControls as a Cake Tool
#tool nuget:?package=Jon.Wpf.CustomControls&version=1.99.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

  1. Open Visual Studio 2023 or later.
  2. Open your solution in Visual Studio.
  3. Open the NuGet Package Manager Console (Tools → NuGet Package Manager → Package Manager Console).
  4. Type Install-Package Jon.Wpf.CustomControls and press Enter to download and install the Jon.WPF.CustomControls NuGet package.
  5. Build your solution to ensure everything is set up correctly.
  6. 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 AutoCompleteTextBox Control

AutoCompleteTextBox

PersonPicture

TtsReader

ToggleSwitch

NumericUpDown

WatermarkTextBox

TimePicker

New TimeTextBox

TimeTextBox

RatingControl

New Expanded Capabilities includes a CollectionControlWindow where items in the collection will each display their properties in it's propertygrid.

PropertyGrid

ColorPickers

WizardControl

Terminal Control

New Calculator Control!

Calculator

Controls

This library currently includes the following controls:

  • 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.
  • TerminalControl: A console terminal or a terminal for your application as well.
  • Calculator: A drop-in working calculator control.
  • Coming Soon:
    • CollectionControlDialog - View List or Observable Collection in a dialog window. Each can open up a separate property grid dialog.
    • Range Slider - Two bar slider where a range can be selected.

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 a Visibility enumeration. Commonly used to show or hide UI elements based on a boolean condition.
  • BoolToCollapsedConverter: Similar to BoolToVisibilityConverter, but collapses the UI element when the boolean is false.
  • ToggleSwitchForegroundConverter: Used specifically for the ToggleSwitch control to determine the foreground color based on the switch's state.
  • ToggleSwitchBackgroundConverter: Used specifically for the ToggleSwitch control to determine the background color based on the switch's state.
  • ToggleSwitchHandleColorConverter: Used specifically for the ToggleSwitch control to determine the handle color based on the switch's state.
  • ColorToBrushConverter: Converts a Color to a Brush. Useful for binding scenarios where a Brush is required but the source is a Color.
  • BrushToColorConverter: Converts a Brush to a Color. Useful for binding scenarios where a Color is required but the source is a Brush.
  • HalfSizeConverter: Takes a size and returns half of it. Useful for positioning or sizing elements relative to others.
  • DateTimeToAmPmConverter: Converts a DateTime to a string representing either "AM" or "PM".
  • SelectorValuesToDateTimeConverter: Converts selector values to a DateTime. Used in the TimePicker control.
  • ColorEqualityConverter: Checks if two colors are equal. Useful for color comparison scenarios.
  • ColorToNameConverter: Converts a Color 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 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. 
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.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

Added AutoCompleteTextBox control.