Dreamine.UI.Wpf.Controls 1.0.1

dotnet add package Dreamine.UI.Wpf.Controls --version 1.0.1
                    
NuGet\Install-Package Dreamine.UI.Wpf.Controls -Version 1.0.1
                    
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="Dreamine.UI.Wpf.Controls" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Dreamine.UI.Wpf.Controls" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="Dreamine.UI.Wpf.Controls" />
                    
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 Dreamine.UI.Wpf.Controls --version 1.0.1
                    
#r "nuget: Dreamine.UI.Wpf.Controls, 1.0.1"
                    
#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 Dreamine.UI.Wpf.Controls@1.0.1
                    
#: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=Dreamine.UI.Wpf.Controls&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=Dreamine.UI.Wpf.Controls&version=1.0.1
                    
Install as a Cake Tool

Dreamine.UI.Wpf.Controls

Dreamine.UI.Wpf.Controls provides the core set of custom WPF controls used across Dreamine-based applications.

It includes interactive controls, navigation infrastructure, and view-switching utilities — all integrated with the Dreamine MVVM pattern.

➡️ 한국어 문서 보기


What this library solves

WPF applications built on Dreamine MVVM need:

  • Styled controls that extend standard WPF controls with project-specific capabilities
  • A navigation bar that manages views, global input hooks, and auto-logout timers
  • A view-switcher that decouples view loading from ViewModel lifecycle
  • Message box and check-selector dialogs that integrate with the Dreamine DI container

Key Features

  • DreamineButton — icon + shadow + grade-based access control, attached command support
  • DreamineNavigationBar — tab-based navigation bar with SharpHook global keyboard hook and idle-logout timer
  • ViewLoader — resolves and instantiates WPF views and ViewModels through DMContainer
  • ViewSwitcher — notifies IActivatable / IVisibilityAware ViewModels on show/hide transitions
  • DreamineMessageBox — themed async message box with auto-dismiss timer
  • DreamineCheckSelector — multi-item check list selector
  • Full suite of styled counterparts: CheckBox, CheckLed, ComboBox, DataGrid, Expander, Image, Label, ListBox, PasswordBox, RadioButton, TabControl, TextBlock, TextBox, TimeSpinner

Requirements

  • Target Framework: net8.0-windows
  • Dependencies:
    • Dreamine.UI.Wpf
    • Dreamine.MVVM.ViewModels
    • Dreamine.MVVM.Interfaces
    • Microsoft.Xaml.Behaviors.Wpf
    • SharpHook 5.3.8+

Installation

NuGet

dotnet add package Dreamine.UI.Wpf.Controls

PackageReference

<PackageReference Include="Dreamine.UI.Wpf.Controls" />

Project Structure

Dreamine.UI.Wpf.Controls
├── CheckSelector/
│   └── DreamineCheckSelector.xaml(.cs)
├── Controls/
│   ├── DreamineButton.cs
│   ├── DreamineCheckBox.cs
│   ├── DreamineCheckLed.cs
│   ├── DreamineComboBox.cs / DreamineControl.cs
│   ├── DreamineDataGrid.cs / DreamineExpander.cs
│   ├── DreamineImage.cs / DreamineLabel.cs
│   ├── DreamineListBox.cs / DreaminePasswordBox.cs
│   ├── DreamineRadioButton.cs / DreamineTabControl.cs
│   ├── DreamineTextBlock.cs / DreamineTextBox.cs
│   └── DreamineTimeSpinner.cs
├── MessageBox/
│   ├── DreamineMessageBox.cs
│   └── DreamineMessageBoxWindow.xaml(.cs)
└── Navigation/
    ├── ButtonData.cs
    ├── DreamineNavigationBar.xaml(.cs)
    ├── ViewLoader.cs
    └── ViewSwitcher.cs

Architecture Role

Dreamine.UI.Wpf
        │
Dreamine.UI.Wpf.Controls     ← this package
        │
Dreamine.UI.Wpf.Equipment
Dreamine.UI.Wpf.Themes
Application Code

Quick Start

DreamineButton

xmlns:ctrl="clr-namespace:Dreamine.UI.Wpf.Controls;assembly=Dreamine.UI.Wpf.Controls"

<ctrl:DreamineButton Content="Save"
                     Command="{Binding SaveCommand}"
                     Grade="1"
                     MinimumGrade="1"
                     UseShadow="True" />

DreamineNavigationBar

<ctrl:DreamineNavigationBar ButtonDatas="{Binding MenuItems}"
                             AutoLogoutSeconds="300" />
// Register views for navigation
ViewLoader.Register("MainView", typeof(MainView), typeof(MainViewModel));

ViewSwitcher — ViewModel lifecycle

// In your ViewModel, implement IActivatable or IVisibilityAware
public class DashboardViewModel : ViewModelBase, IActivatable
{
    public void Activate()   { /* start polling */ }
    public void Deactivate() { /* stop polling  */ }
}

// Register at startup
ViewSwitcher.RegisterViewModel("DashboardView", dashboardVm);

DreamineMessageBox

var result = await DreamineMessageBox.ShowAsync(
    "Discard changes?",
    "Confirm",
    autoClick: MessageBoxResult.Cancel,
    autoClickDelaySeconds: 10);

Enum Reference

Enum Values Used By
SelectedVisualMode BorderOnly, BackgroundOnly, Both DreamineButton
IconPosition Left, Right, Top, Bottom, Full DreamineButton
ExpanderArrowPlacement Left, Right DreamineExpander
NavigationBarPosition Left, Right, Top, Bottom DreamineNavigationBar

Design Notes

  • All controls auto-merge their ResourceDictionary from Dreamine.UI.Wpf.Themes at construction time
  • ViewSwitcher uses a local dictionary — ViewModels must be registered via RegisterViewModel before navigation begins
  • DreamineNavigationBar uses SharpHook.TaskPoolGlobalHook for process-wide keyboard monitoring; the hook is shared across all instances
  • Grade / MinimumGrade access control is evaluated at click time; no login system is required

License

MIT License

Product Compatible and additional computed target framework versions.
.NET net8.0-windows7.0 is compatible.  net9.0-windows was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Dreamine.UI.Wpf.Controls:

Package Downloads
Dreamine.UI.FullKit

All-in-one meta package for Dreamine UI libraries (WPF stack). Includes Abstractions, Wpf host, Controls, Equipment, and Themes. Blazor / MAUI / WinForms hosts must be installed separately due to framework differences.

Dreamine.UI.Wpf.Equipment

Equipment-grade WPF components: Virtual Keyboard, Blink Popup, Alarm Config.

Dreamine.UI.Wpf.Themes

WPF style/theme ResourceDictionary files for Dreamine UI controls.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1 118 7/8/2026
1.0.0 112 7/8/2026