Skip to content

MarkdownTextBlock: Complete 7x Feature Parity #750

@Arlodotexe

Description

@Arlodotexe

Overview

The Windows Community Toolkit 7.x MarkdownTextBlock had a richer feature set than the current 8.x implementation. This issue tracks completion of feature parity by restoring missing properties and functionality.

7.x had 61 properties, 8.x baseline had 43 properties (18 properties missing). With PR #729 and existing capabilities, we've restored most of the gap.


Completed

8.x Baseline (Pre-PR #729)

The 8.x implementation launched with 32 properties:

  • Headers (18): Individual font sizes (H1-H6), font weights (H1-H6), margins (H1-H6)
  • Inline code (7): Background, border (brush/thickness), font family, foreground, margin, padding
  • New in 8.x (6): Config (MarkdownConfig), BaseUrl, ImageProvider/SVGRenderer, Padding, InternalMargin, CornerRadius
  • Functionality (1): IsTextSelectionEnabled (already implemented, verified in MarkdownTextBlock.Properties.cs lines 114-127, 224-228)

PR #729 Restorations

PR #729 achieved comprehensive styling parity, restoring 33 properties across all major markdown elements:

  • Code blocks (7): Background, border, font, foreground, margin, padding
  • Quotes (6): Background, border, foreground, margin, padding
  • Tables (4): Border, cell padding, margin
  • Lists (3): Bullet spacing, gutter width, margin
  • Paragraphs (2): Margin, line height
  • Horizontal rules (3): Brush, margin, thickness
  • Images (3): Max height/width, stretch mode
  • Links (1): Foreground color
  • Header colors (6): Individual foreground for H1-H6
  • YAML (2): Border brush, thickness

Missing Features

The following 5 properties from 7.x remain to be ported:

Syntax Highlighting

Text Wrapping

URI Customization

Emoji Font

Code Block Wrapping


Implementation Notes

Progress:

Complexity: Only 1 HIGH complexity feature (syntax highlighting), 4 are straightforward property ports with LOW-MEDIUM complexity.

7.x Source: All references point to WindowsCommunityToolkit rel/7.1.2 for implementation guidance.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions