Dreamine.UI.Abstractions 1.0.1

dotnet add package Dreamine.UI.Abstractions --version 1.0.1
                    
NuGet\Install-Package Dreamine.UI.Abstractions -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.Abstractions" 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.Abstractions" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="Dreamine.UI.Abstractions" />
                    
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.Abstractions --version 1.0.1
                    
#r "nuget: Dreamine.UI.Abstractions, 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.Abstractions@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.Abstractions&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=Dreamine.UI.Abstractions&version=1.0.1
                    
Install as a Cake Tool

Dreamine.UI.Abstractions

Dreamine.UI.Abstractions defines the platform-agnostic contracts, interfaces, and enumerations shared across all Dreamine UI packages.

It contains no WPF-specific code.
Concrete implementations live in platform-specific packages such as Dreamine.UI.Wpf.Equipment.

➡️ 한국어 문서 보기


What this library solves

UI component contracts need to be defined independently of any rendering platform so that:

  • abstractions can be referenced without pulling in WPF assemblies
  • business-layer code can depend on interfaces instead of concrete UI controls
  • platform-specific packages implement the contracts without circular dependencies

Key Features

  • Platform-agnostic popup service interface (IPopupService)
  • Virtual keyboard layout and input mode enumerations
  • Language code enumeration for keyboard localization
  • Action result enumeration for virtual keyboard Enter-key providers
  • No WPF / UI framework dependency

Requirements

  • Target Framework: net8.0-windows
  • No external package dependencies

Installation

NuGet

dotnet add package Dreamine.UI.Abstractions

PackageReference

<PackageReference Include="Dreamine.UI.Abstractions" />

Project Structure

Dreamine.UI.Abstractions
├── Popup/
│   ├── BlinkPopupOptions.cs       — options passed to blink popup windows
│   └── IPopupService.cs           — popup service contract
└── VirtualKeyboard/
    ├── ActionResult.cs            — Enter-key provider result
    ├── eActionResult.cs           — (internal, replaced by ActionResult)
    ├── IEnterActionProvider.cs    — Enter-key action provider contract
    ├── KeyboardInputMode.cs       — text / numeric / password input mode
    ├── LanguageCode.cs            — en_US / ko_KR / zh_CN / vi_VN
    └── VkLayout.cs                — Text / Password / Numeric / Decimal

Architecture Role

Dreamine.UI.Abstractions
        │
        ├─ Dreamine.UI.Wpf.Equipment   (popup + keyboard implementation)
        ├─ Dreamine.UI.Wpf.Controls    (navigation + view management)
        └─ Application Code            (depends on interfaces only)

This package is the lowest layer of the UI stack — no upward dependencies.


Key Interfaces

IPopupService

Provides a platform-neutral contract for showing, closing, and querying blink popup windows.

IPopupService popupService = DMContainer.Resolve<IPopupService>();

await popupService.ShowBlinkAsync(owner, new BlinkPopupOptions
{
    Message = "Operation complete",
    OkText  = "OK"
});

BlinkPopupOptions

Configures the appearance and behavior of blink popup windows.

var options = new BlinkPopupOptions
{
    Title          = "Warning",
    Message        = "Check equipment status",
    UseBlink       = true,
    BlinkIntervalMs = 400,
    Color1         = Colors.Red,
    Color2         = Colors.DarkRed,
    IsModal        = true
};

VkLayout

Selects the virtual keyboard layout presented to the user.

Value Description
Text Full alphanumeric keyboard
Password Masked text keyboard
Numeric Numeric pad
Decimal Decimal number input

LanguageCode

Selects the language of the virtual keyboard.

Value Language
en_US English
ko_KR Korean
zh_CN Chinese
vi_VN Vietnamese

Design Notes

This package deliberately stays free of any rendering framework dependency.

  • No System.Windows types
  • No XAML resource references
  • Contracts only — all behavior lives in implementing packages

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.
  • net8.0-windows7.0

    • No dependencies.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on Dreamine.UI.Abstractions:

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.Controls

Custom WPF controls for the Dreamine UI library: DreamineButton, DreamineTextBox, MessageBox, Navigation, and more.

Dreamine.UI.Wpf

WPF Behaviors, Converters, and Localization utilities for the Dreamine UI library.

Dreamine.UI.Wpf.Equipment

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

GitHub repositories

This package is not used by any popular GitHub repositories.

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