MudBlazor/MudBlazor

MudOnScreenKeyboard

开放

#11,699 创建于 2025年7月23日

 (4 条评论) (8 个反应) (0 位负责人)C# (1,631 个派生)batch import
device: mobilehelp wantednew component

仓库指标

星标
 (10,394 个星标)
PR 合并指标
 (平均合并 6天 6小时) (30 天内合并 108 个 PR)

描述

🚀 Describe the feature

I'd like to propose a native MudOnScreenKeyboard component for MudBlazor (or MudBlazor.Extensions), designed specifically for kiosk-style applications that run in touch-only environments – such as terminals, info displays, or hybrid mobile/web apps.

The goal is to provide a virtual keyboard that integrates seamlessly with the MudBlazor component system and allows text input without relying on a physical keyboard – especially useful in fullscreen portrait-mode setups where the system keyboard is hidden or unavailable.


🧩 Real-world use case

We're building a self-service terminal using MAUI Blazor Hybrid – think McDonald's-style kiosk:

  • The app runs in fullscreen (portrait mode)
  • Users interact via touch only
  • When focusing a MudTextField, an on-screen keyboard should slide in
  • After text input, it should disappear or allow confirm/cancel
  • Needs to support international characters (ideally via layout switching)

This setup requires a reliable, well-integrated on-screen keyboard.


🔗 Related feature: #11693 – Lottie Animation Player

In my related feature request for a MudLottiePlayer, I described the need for rich, animated UX feedback in kiosk scenarios (e.g. animated finger tapping, printers printing, etc.).

This MudOnScreenKeyboard would go hand-in-hand with that goal: Together, they would make MudBlazor a powerful choice for kiosk solutions, especially with Blazor Hybrid (MAUI), Blazor WASM on tablets, or embedded browsers.


✅ Expected features

  • Configurable layout (QWERTY, AZERTY, NUMPAD, custom)
  • Supports letters, numbers, symbols
  • Callback events (e.g. OnKeyPress, OnEnter, OnClose)
  • Bindable @bind-Value
  • Optional auto-appearance on input focus
  • Optionally styled like other Mud components
  • Mobile-friendly & accessible

📦 Where could this live?

Open to suggestions, but possible options:

  • CodeBeam.MudBlazor.Extensions
  • MudBlazor.Extensions
  • Core MudBlazor (if kiosk support is considered important enough)
  • Or a dedicated extension package like MudBlazor.Kiosk

🙌 Final thoughts

I’d be happy to help implement or test this component. It would really help devs building touch-first UIs and make MudBlazor even more versatile beyond classic desktop web apps.

Let me know if this is something you'd consider.

Alternatives and examples

While there are JS solutions like KioskBoard or simple-keyboard they don't play well with MudBlazor – especially regarding focus/blur handling and integration with MudForm components. I didn't yet found a way to make Kiosk board work correctly with MudBlazor's input fields (as someone else here. I didn't test simple-keyboard yet.

贡献者指南