VDT.Core.Blazor.GlobalEventHandler 3.0.0

dotnet add package VDT.Core.Blazor.GlobalEventHandler --version 3.0.0
NuGet\Install-Package VDT.Core.Blazor.GlobalEventHandler -Version 3.0.0
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="VDT.Core.Blazor.GlobalEventHandler" Version="3.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add VDT.Core.Blazor.GlobalEventHandler --version 3.0.0
#r "nuget: VDT.Core.Blazor.GlobalEventHandler, 3.0.0"
#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.
// Install VDT.Core.Blazor.GlobalEventHandler as a Cake Addin
#addin nuget:?package=VDT.Core.Blazor.GlobalEventHandler&version=3.0.0

// Install VDT.Core.Blazor.GlobalEventHandler as a Cake Tool
#tool nuget:?package=VDT.Core.Blazor.GlobalEventHandler&version=3.0.0

VDT.Core.Blazor.GlobalEventHandler

Blazor component that allows you to handle global window level events in your application.

Features

  • Window-level events that don't require focus on any element:
    • Keyboard events
    • Mouse events
    • Touch events
    • General events

Usage

To register event handlers, simply include the GlobalEventHandler component on your page and register your event handler with the event in the component that you want to handle. The available events are:

  • OnKeyDown which provides an optional KeyboardEventArgs parameter
  • OnKeyUp which provides an optional KeyboardEventArgs parameter
  • OnClick which provides an optional MouseEventArgs parameter
  • OnContextMenu which provides an optional MouseEventArgs parameter
  • OnDoubleClick which provides an optional MouseEventArgs parameter
  • OnMouseDown which provides an optional MouseEventArgs parameter
  • OnMouseUp which provides an optional MouseEventArgs parameter
  • OnMouseMove which provides an optional MouseEventArgs parameter
  • OnTouchStart which provides an optional TouchEventargs parameter
  • OnTouchEnd which provides an optional TouchEventargs parameter
  • OnTouchCancel which provides an optional TouchEventargs parameter
  • OnTouchMove which provides an optional TouchEventargs parameter
  • OnResize which provides an optional ResizeEventArgs parameter
  • OnScroll which provides an optional ScrollEventArgs parameter
  • OnOffline which provides an optional WindowEventArgs parameter
  • OnOnline which provides an optional WindowEventArgs parameter

Example

<GlobalEventHandler OnKeyDown="@OnWindowKeyDown" OnResize="@OnWindowResize" OnClick="@OnWindowClick" />

@if (keyDownEventArgs != null) {
    <h2>Last key down event</h2>

    <ul>
        <li>Alt key: @keyDownEventArgs.AltKey</li>
        <li>Code: @keyDownEventArgs.Code</li>
        <li>Ctrl key: @keyDownEventArgs.CtrlKey</li>
        <li>Key: @keyDownEventArgs.Key</li>
        <li>Location: @keyDownEventArgs.Location</li>
        <li>Meta key: @keyDownEventArgs.MetaKey</li>
        <li>Repeat: @keyDownEventArgs.Repeat</li>
        <li>Shift key: @keyDownEventArgs.ShiftKey</li>
        <li>Type: @keyDownEventArgs.Type</li>
    </ul>
}

@if (resizeEventArgs != null) {
    <h2>Last resize event</h2>

    <ul>
        <li>Width: @resizeEventArgs.Width</li>
        <li>Height: @resizeEventArgs.Height</li>
    </ul>
}

@if (clicked) {
    <h2>Clicked</h2>
}

@code {
    private KeyboardEventArgs? keyDownEventArgs;
    private ResizeEventArgs? resizeEventArgs;
    private bool clicked = false;
    
    // Handlers can be asynchronous ...
    public async Task OnWindowKeyDown(KeyboardEventArgs args) {
        keyDownEventArgs = args;

        await Task.CompletedTask;
    }    

    // ... Or synchronous
    public void OnWindowResize(ResizeEventArgs args) {
        resizeEventArgs = args;
    }

    // EventArgs are optional
    public void OnWindowClick() {
        clicked = true;
    }
}
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.0.0 87 3/19/2024
2.2.0 220 8/17/2023
2.1.1 321 2/27/2023
2.1.0 212 2/23/2023
2.0.0 215 2/13/2023
1.2.0 238 2/12/2023
1.1.4 231 2/11/2023
1.1.3 231 2/3/2023
1.1.2 330 1/15/2022
1.1.1 247 1/15/2022
1.1.0 1,203 11/20/2021
1.0.0 278 11/9/2021

- Added explicit .net 8.0 support