Kiwicodes.Beacon.HelpCenter.Wpf 1.2.5

dotnet add package Kiwicodes.Beacon.HelpCenter.Wpf --version 1.2.5
                    
NuGet\Install-Package Kiwicodes.Beacon.HelpCenter.Wpf -Version 1.2.5
                    
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="Kiwicodes.Beacon.HelpCenter.Wpf" Version="1.2.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Kiwicodes.Beacon.HelpCenter.Wpf" Version="1.2.5" />
                    
Directory.Packages.props
<PackageReference Include="Kiwicodes.Beacon.HelpCenter.Wpf" />
                    
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 Kiwicodes.Beacon.HelpCenter.Wpf --version 1.2.5
                    
#r "nuget: Kiwicodes.Beacon.HelpCenter.Wpf, 1.2.5"
                    
#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 Kiwicodes.Beacon.HelpCenter.Wpf@1.2.5
                    
#: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=Kiwicodes.Beacon.HelpCenter.Wpf&version=1.2.5
                    
Install as a Cake Addin
#tool nuget:?package=Kiwicodes.Beacon.HelpCenter.Wpf&version=1.2.5
                    
Install as a Cake Tool

Beacon Help Center (WPF)

A drop-in, themeable customer help center control for WPF — a faithful port of the Blazor Kiwicodes.Beacon.HelpCenter, packaged as a control library you can embed in any WPF app. It renders the knowledge base, the request form and the ticket tracker from a single control. Point it at your Beacon API and your app's portal key, set a brand colour, and you're done.

It's built on Kiwicodes.Beacon.Sdk's BeaconPublicClient, so all calls go through the same public (/public/*) endpoints — no admin credentials, no HMAC signing required on the client.

The knowledge base opens on a category list (each with a book icon and an article count). It's a two-level accordion: clicking a category expands it to show any articles that sit directly under it, plus its folders (folder icon); clicking a folder expands its articles (document icon). Folders are a single level deep and optional — articles with no folder appear right under their category, and articles with no known category are grouped under General. Typing in the search box lists matching articles across everything.

Install

dotnet add package Kiwicodes.Beacon.HelpCenter.Wpf

This pulls in Kiwicodes.Beacon.Sdk automatically. The project targets net8.0-windows with WPF.

WebView2 runtime

Article bodies are HTML, so they're rendered with the embedded WebView2 control (Microsoft.Web.WebView2). Most up-to-date Windows machines already have the Evergreen WebView2 Runtime; if a target machine doesn't, install it from Microsoft (it ships with current Windows 10/11 and Edge). If the runtime is missing the control degrades gracefully to a plain-text rendering of the article.

Quick start (XAML)

The control is fully self-contained — it manages its own navigation between the article list, an article, the request form and the ticket tracker. Drop it into any window or page:

<Window ...
        xmlns:bk="clr-namespace:Beacon.HelpCenter.Wpf;assembly=Beacon.HelpCenter.Wpf">
    <bk:BeaconHelpCenter BaseUrl="https://your-beacon/api/"
                         PortalKey="pk_live_xxxxxxxx"
                         PrimaryColor="#e8590c" />
</Window>
  • BaseUrl — your Beacon API base, including the route prefix (e.g. .../api/).
  • PortalKey — your app's portal key (the public key from Beacon's Settings → API Keys). This is what scopes the help center to your app's articles and tickets.
  • PrimaryColor — your brand colour. The header gradient, buttons, links and accent tints are all derived from it.

With dependency injection (optional)

If you'd rather not repeat BaseUrl on every instance, register a client once and hand the provider to the control:

// App startup
var services = new ServiceCollection();
services.AddBeaconHelpCenter("https://your-beacon/api/");
BeaconHelpCenter.Services = services.BuildServiceProvider();
<bk:BeaconHelpCenter PortalKey="pk_live_xxxxxxxx" PrimaryColor="#e8590c" />

The control resolves its data source in this order: an explicit Client property → a BeaconPublicClient resolved from BeaconHelpCenter.Services → a client built from BaseUrl.

Verified users

If your app already knows who the user is, pass their name and email. The request form then pre-fills both fields, makes them read-only, and shows a Verified user badge — so signed-in users don't retype (or mistype) their details:

<bk:BeaconHelpCenter BaseUrl="https://your-beacon/api/"
                     PortalKey="pk_live_xxxxxxxx"
                     VerifiedUserName="{Binding User.DisplayName}"
                     VerifiedUserEmail="{Binding User.Email}" />

Verified mode switches on as soon as VerifiedUserEmail is non-empty. Leave these unset for anonymous portals and the fields stay editable as normal.

Attachments

Customers can attach files to a new request (up to 10 MB each by default) using the native Windows file picker. Attachments upload after the ticket is created and appear on the ticket view.

<bk:BeaconHelpCenter BaseUrl="https://your-beacon/api/"
                     PortalKey="pk_live_xxxxxxxx"
                     AllowAttachments="True"
                     MaxAttachmentBytes="10485760" />

Set AllowAttachments="False" to hide attachments entirely.

Theming

For most apps, PrimaryColor is all you need. For full control, assign a HelpCenterTheme — anything you leave unset keeps its default (or is derived from the primary colour):

helpCenter.Theme = new HelpCenterTheme
{
    PrimaryColor   = "#0d9488",
    PageBackground = "#f7faf9",
    GradientAngle  = 135,
    CardRadius     = 18,
    FontFamily     = "Segoe UI",
};
Property Default Notes
PrimaryColor #4d56ec Brand colour; drives buttons, links, gradient, tints
OnPrimaryColor white Text/icons on primary surfaces
GradientStart / GradientMid / GradientEnd derived from primary Header gradient stops
GradientAngle 158 Header gradient angle (degrees, CSS convention)
PageBackground #f6f5f2 Page background behind cards
SurfaceColor white Card background
TextColor / MutedTextColor / FaintTextColor warm greys Text hierarchy
BorderColor #e3ddd4 Inputs and dividers
SuccessColor / DangerColor green / red Confirmations and validation
CardRadius / ControlRadius 14 / 10 Corner radii (device-independent px)
FontFamily Segoe UI stack Font for the whole help center

Each theme value is emitted as a WPF resource (Bk.*) merged into the control, so the markup references them via {DynamicResource Bk.Primary} etc. — the direct analogue of the Blazor version's --bk-* CSS custom properties. Colour properties accept 3/6-digit hex or any WPF named colour.

Control properties

Property Type Description
PortalKey (required) string Your app's portal/public key
BaseUrl string? Beacon API base; used when no Client/DI client is available
Client BeaconPublicClient? Supply a pre-configured client instead of BaseUrl
PrimaryColor string? Brand colour shortcut (ignored when Theme is set)
Theme HelpCenterTheme? Full theme object
Heading string Big header text (default "How can we help?")
Subheading string? Eyebrow label (default "{App} Help Center")
VerifiedUserName string? Pre-fills the requester name (read-only) when verified mode is on
VerifiedUserEmail string? Pre-fills the requester email; supplying it enables verified mode + badge
AllowAttachments bool Show the file attachment UI on the request form (default true)
MaxAttachmentBytes long Per-file size limit in bytes (default 10 MB)
TicketLinkFormat string? Template for a shareable tracking link, {id}/{token} substituted
InitialArticleId string? Land directly on an article (deep link)
InitialTicketId / InitialTicketToken string? Land directly on a ticket

Notes on the port

This library mirrors the Blazor help center's behaviour and visual design as closely as WPF allows: the same view flow, theming model, knowledge-base accordion, search, request form with live suggestions, and token-gated ticket tracker. The two deliberate platform differences are that article HTML renders through WebView2 (WPF has no native HTML renderer) and attachments use the Windows file picker (there is no MAUI camera option).

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.

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
1.2.5 158 6/23/2026