Dreamine.UI.Wpf.Themes
1.0.1
dotnet add package Dreamine.UI.Wpf.Themes --version 1.0.1
NuGet\Install-Package Dreamine.UI.Wpf.Themes -Version 1.0.1
<PackageReference Include="Dreamine.UI.Wpf.Themes" Version="1.0.1" />
<PackageVersion Include="Dreamine.UI.Wpf.Themes" Version="1.0.1" />
<PackageReference Include="Dreamine.UI.Wpf.Themes" />
paket add Dreamine.UI.Wpf.Themes --version 1.0.1
#r "nuget: Dreamine.UI.Wpf.Themes, 1.0.1"
#:package Dreamine.UI.Wpf.Themes@1.0.1
#addin nuget:?package=Dreamine.UI.Wpf.Themes&version=1.0.1
#tool nuget:?package=Dreamine.UI.Wpf.Themes&version=1.0.1
Dreamine.UI.Wpf.Themes
Dreamine.UI.Wpf.Themes contains the WPF ResourceDictionary style and control template definitions for all Dreamine UI controls.
It is a pure XAML package — no code-behind logic.
Controls in Dreamine.UI.Wpf.Controls and Dreamine.UI.Wpf.Equipment auto-merge styles from this package at construction time.
What this library solves
WPF controls need a centralized place for:
- Consistent visual design across all Dreamine controls
- Style definitions that can be updated without rebuilding control logic
- Separation of visual layer from behavior layer
By isolating all XAML styles into a dedicated package, application teams can override or replace the theme layer without touching control implementations.
Key Features
- One
ResourceDictionaryfile per control type - Root merge dictionary
DreamineThemes.xamlincludes all style files - Style keys match the WPF
TargetTypepattern — no explicit key required in application XAML - Supports converter references via
assembly=qualified xmlns - Numeric keypad and message box button styles included
Requirements
- Target Framework:
net8.0-windows - Dependencies:
Dreamine.UI.WpfDreamine.UI.Wpf.Controls
Installation
NuGet
dotnet add package Dreamine.UI.Wpf.Themes
PackageReference
<PackageReference Include="Dreamine.UI.Wpf.Themes" />
Project Structure
Dreamine.UI.Wpf.Themes
├── DreamineThemes.xaml — root merge dictionary
├── DreamineButtonStyle.xaml
├── DreamineCheckBoxStyle.xaml
├── DreamineCheckLedStyle.xaml
├── DreamineComboBoxStyle.xaml
├── DreamineDataGridStyle.xaml
├── DreamineExpanderStyle.xaml
├── DreamineGridStyles.xaml
├── DreamineImageStyle.xaml
├── DreamineLabelStyle.xaml
├── DreamineListBoxStyle.xaml
├── DreamineMessageBoxButtonStyle.xaml
├── DreaminePasswordBoxStyle.xaml
├── DreamineRadioButtonStyle.xaml
├── DreamineTabControlStyle.xaml
├── DreamineTextBlockStyle.xaml
├── DreamineTextBoxStyle.xaml
├── DreamineTimeSpinnerStyle.xaml
└── DreamineKeyPadStyles.xaml
Architecture Role
Dreamine.UI.Wpf
Dreamine.UI.Wpf.Controls
│
Dreamine.UI.Wpf.Themes ← this package (visual layer only)
│
Application Code
Control libraries reference this package to auto-merge styles.
Application code may also reference this package to apply styles globally via App.xaml.
Usage
Option A) Auto-merge (default behavior)
Controls auto-merge their matching ResourceDictionary when instantiated.
No additional setup is required in application XAML.
Option B) Global application theme
Add to App.xaml to apply Dreamine styles project-wide:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Dreamine.UI.Wpf.Themes;component/DreamineThemes.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Option C) Single style file
Include only the styles you need:
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Dreamine.UI.Wpf.Themes;component/DreamineButtonStyle.xaml" />
<ResourceDictionary Source="/Dreamine.UI.Wpf.Themes;component/DreamineTextBoxStyle.xaml" />
</ResourceDictionary.MergedDictionaries>
Style File Reference
| File | Target Control |
|---|---|
DreamineButtonStyle.xaml |
DreamineButton |
DreamineCheckBoxStyle.xaml |
DreamineCheckBox |
DreamineCheckLedStyle.xaml |
DreamineCheckLed |
DreamineComboBoxStyle.xaml |
DreamineComboBox |
DreamineDataGridStyle.xaml |
DreamineDataGrid |
DreamineExpanderStyle.xaml |
DreamineExpander |
DreamineGridStyles.xaml |
Grid layout helpers |
DreamineImageStyle.xaml |
DreamineImage |
DreamineLabelStyle.xaml |
DreamineLabel |
DreamineListBoxStyle.xaml |
DreamineListBox |
DreamineMessageBoxButtonStyle.xaml |
Message box buttons |
DreaminePasswordBoxStyle.xaml |
DreaminePasswordBox |
DreamineRadioButtonStyle.xaml |
DreamineRadioButton |
DreamineTabControlStyle.xaml |
DreamineTabControl |
DreamineTextBlockStyle.xaml |
DreamineTextBlock |
DreamineTextBoxStyle.xaml |
DreamineTextBox |
DreamineTimeSpinnerStyle.xaml |
DreamineTimeSpinner |
DreamineKeyPadStyles.xaml |
Virtual keyboard keys |
Design Notes
- All
xmlnsdeclarations for cross-assembly types use theassembly=qualifier — required for XAML compilation across project boundaries - Converter resources such as
NullToVisibilityConverterare declared inline in the style files that use them - No code-behind exists in this package; styles are purely declarative
- Overriding a style: define a style with
x:Keymatching the control type in your application resource dictionary — it takes precedence over the merged style
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.UI.Wpf (>= 1.0.1)
- Dreamine.UI.Wpf.Controls (>= 1.0.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Dreamine.UI.Wpf.Themes:
| 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. |
GitHub repositories
This package is not used by any popular GitHub repositories.