skillZs
LIVE SKILL TAGS
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
REAL INSTALL DATA
← back to all skills
syncfusion/wpf-ui-components-skills92 installs

syncfusion-wpf-markdown-viewer

Implement Syncfusion WPF SfMarkdownViewer for rendering and displaying Markdown content in WPF applications. Use this when rendering Markdown text, loading Markdown from strings or application-controlled local files, handling hyperlink clicks with URL validation, or displaying Mermaid diagrams with input sanitization. Covers the Source property, HyperlinkClicked events with allowlist-based navigation, and MermaidBlockTemplate customization with input validation. Always validate and sanitize Markdown content before assigning to Source, especially when the content originates from remote or user-supplied sources.

How do I install this agent skill?

npx skills add https://github.com/syncfusion/wpf-ui-components-skills --skill syncfusion-wpf-markdown-viewer
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    The skill provides comprehensive documentation and code examples for implementing the Syncfusion WPF Markdown Viewer control in applications. It explains how to render Markdown from strings, local files, and remote URLs, and how to handle user interactions like hyperlink clicks. Analysis confirms the skill is safe and follows standard development practices.

  • Socketpass

    No alerts

  • Snykwarn

    Risk: MEDIUM · 1 issue

What does this agent skill do?

Implementing WPF SfMarkdownViewer

The SfMarkdownViewer renders Markdown content — headings, lists, links, images, tables, code blocks, and block quotes — into a styled WPF visual. Use it to display documentation, release notes, help content, README files, or any Markdown-based content without external rendering engines.

When to Use This Skill

  • User needs to render or preview Markdown content in a WPF app
  • Loading Markdown from a hard-coded string, application-bundled resource, or application-controlled local file
  • Displaying documentation, changelogs, or help text that originates from trusted, application-owned sources
  • Intercepting hyperlink navigation with URL validation and allowlisting
  • Rendering Mermaid flowchart diagrams with input length and type validation

⚠️ Out of scope: Do not use this skill to load Markdown directly from arbitrary third-party URLs or unvalidated user input without fetching, validating, and sanitizing the content in application code first.

Quick Start

<Window
    x:Class="GettingStarted.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:markdown="clr-namespace:Syncfusion.UI.Xaml.Markdown;assembly=Syncfusion.SfMarkdownViewer.WPF"
    xmlns:system="clr-namespace:System;assembly=mscorlib">
    <Grid>
        <markdown:SfMarkdownViewer Source="# Hello World&#10;&#10;This is **bold** and *italic* text." />
    </Grid>
</Window>
using Syncfusion.UI.Xaml.Markdown;

SfMarkdownViewer markdownViewer = new SfMarkdownViewer();
markdownViewer.Source = "# Hello World\n\nThis is **bold** and *italic* text.";
this.Content = markdownViewer;

Documentation and Navigation Guide

Getting Started

📄 Read: references/getting-started.md

  • NuGet package installation (Syncfusion.SfMarkdownViewer.Wpf)
  • Required assembly references (3 assemblies)
  • XAML namespace import
  • Adding control via XAML and C#
  • Inline Markdown string via Source property
  • SfSkinManager theme support

Loading Content

📄 Read: references/loading-content.md

  • Loading from raw Markdown string
  • Loading from a local application-controlled file path
  • Loading from a remote URL via application code (fetch → validate origin → check content-type → assign string)
  • XAML CDATA string source pattern
  • Decision guide: which source type to use
  • Security requirements for remote content loading

Events

📄 Read: references/events.md

  • HyperlinkClicked event
  • MarkdownHyperlinkClickedEventArgs (Url, Cancel)
  • Cancel-by-default pattern — always cancel first, then selectively permit validated URLs
  • Allowlist-based in-app route validation for app:// links
  • Blocking non-HTTPS external schemes

Mermaid Diagrams

📄 Read: references/mermaid-diagrams.md

  • MermaidBlockTemplate property
  • Embedding SfDiagram in a DataTemplate
  • Validating DataContext (Mermaid string) before rendering — length limit and type allowlist
  • FlowchartLayout configuration
  • LoadDiagramFromMermaid() usage
  • Required dependencies for Mermaid support

Key Properties

PropertyTypePurpose
SourcestringRaw Markdown string, file path, or HTTP/HTTPS URL
MermaidBlockTemplateDataTemplateCustom template for rendering mermaid code blocks

Key Events

EventArgsPurpose
HyperlinkClickedMarkdownHyperlinkClickedEventArgsFires when user clicks a hyperlink in rendered Markdown

Common Use Cases

  • In-app documentation: Embed Markdown as a hard-coded string or application-bundled resource file; assign to Source directly
  • Release notes panel: Load a local .md file bundled with the application (not a path from user input) and assign its text to Source
  • Remote documentation: Fetch Markdown from an application-owned HTTPS endpoint in application code, validate the HTTP response origin and content-type, then assign the sanitized string to Source — never pass a third-party URL directly to Source
  • Help viewer: Render contextual Markdown help strings from trusted, application-controlled sources
  • Diagram viewer: Use MermaidBlockTemplate with SfDiagram to render flowcharts; validate the Mermaid DataContext string (length and type prefix) before calling LoadDiagramFromMermaid()
  • Controlled navigation: Handle HyperlinkClicked with cancel-by-default; validate app:// routes against an explicit allowlist and only permit https:// external links

Security Considerations

RiskMitigation
Remote URL loads untrusted third-party MarkdownFetch content in app code; validate origin (allowlisted base URL) and content-type before assigning to Source
Hyperlink in Markdown drives unintended navigationUse cancel-by-default in HyperlinkClicked; validate app:// routes against a fixed allowlist; only permit https:// external links
Mermaid block from untrusted Markdown drives diagram renderingValidate DataContext string: check non-null, enforce length limit, allowlist diagram type prefixes before calling LoadDiagramFromMermaid()
User-supplied URL passed to SourceNever accept URLs from user input or third-party data as-is; always validate origin in application code first

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/syncfusion/wpf-ui-components-skills/syncfusion-wpf-markdown-viewer">View syncfusion-wpf-markdown-viewer on skillZs</a>