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
<PackageReference Include="Dreamine.UI.Wpf.Controls" Version="1.0.1" />
<PackageVersion Include="Dreamine.UI.Wpf.Controls" Version="1.0.1" />
<PackageReference Include="Dreamine.UI.Wpf.Controls" />
paket add Dreamine.UI.Wpf.Controls --version 1.0.1
#r "nuget: Dreamine.UI.Wpf.Controls, 1.0.1"
#:package Dreamine.UI.Wpf.Controls@1.0.1
#addin nuget:?package=Dreamine.UI.Wpf.Controls&version=1.0.1
#tool nuget:?package=Dreamine.UI.Wpf.Controls&version=1.0.1
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/IVisibilityAwareViewModels 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.WpfDreamine.MVVM.ViewModelsDreamine.MVVM.InterfacesMicrosoft.Xaml.Behaviors.WpfSharpHook5.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
ResourceDictionaryfromDreamine.UI.Wpf.Themesat construction time ViewSwitcheruses a local dictionary — ViewModels must be registered viaRegisterViewModelbefore navigation beginsDreamineNavigationBarusesSharpHook.TaskPoolGlobalHookfor 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 | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0-windows7.0 is compatible. net9.0-windows was computed. net10.0-windows was computed. |
-
net8.0-windows7.0
- Dreamine.MVVM.Core (>= 1.0.13)
- Dreamine.MVVM.Interfaces (>= 1.0.7)
- Dreamine.MVVM.Locators (>= 1.0.10)
- Dreamine.MVVM.ViewModels (>= 1.0.5)
- Dreamine.UI.Abstractions (>= 1.0.1)
- Dreamine.UI.Wpf (>= 1.0.1)
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.