designing-avalonia-customcontrol-architecture | Skill Performance & Reviews | TopRankSkills

TopRank Skills

Home / Skills / development / designing-avalonia-customcontr...

designing-avalonia-customcontrol-architecture

maintained by NeverSight

star 66 account_tree 19 verified_user MIT License
bolt View GitHub

name: designing-avalonia-customcontrol-architecture description: "Defines the basic solution structure for AvaloniaUI Desktop Applications using CustomControl. Use when creating new AvaloniaUI projects or designing stand-alone control styles with ControlTheme."

6.5 Writing AXAML Code

  • When generating AXAML code, use CustomControl with ControlTheme for Stand-Alone Control Style
  • Purpose: Theme separation and minimizing style dependencies

6.5.1 AvaloniaUI Custom Control Library Project Structure

Recommended Project Structure:

YourAvaloniaSolution
├── YourCustomControlProject1/
│    ├── Properties/
│    │   ├── AssemblyInfo.cs            ← AssemblyInfo.cs definition
│    ├── Themes/
│    │   ├── Generic.axaml            ← ControlTheme definition
│    │   ├── CustomButton1.axaml       ← Individual control theme
│    │   └── CustomTextBox1.axaml      ← Individual control theme
│    ├── CustomButton1.cs
│    └── CustomTextBox1.cs
└── YourCustomControlProject2/
    ├── Properties/
    │   ├── AssemblyInfo.cs            ← AssemblyInfo.cs definition
    ├── Themes/
    │   ├── Generic.axaml            ← ControlTheme definition
    │   ├── CustomButton2.axaml       ← Individual control theme
    │   └── CustomTextBox2.axaml      ← Individual control theme
    ├── CustomButton2.cs
    └── CustomTextBox2.cs

6.6 ⚠️ Distinguishing ResourceInclude vs MergeResourceInclude

  • ResourceInclude: Used in regular ResourceDictionary files (Generic.axaml, Styles, etc.)
  • MergeResourceInclude: Used only in Application.Resources (App.axaml)

Advantages:

  • Complete separation of theme and logic based on ControlTheme
  • Flexible style variations through CSS Classes
  • State management via Pseudo Classes (:pointerover, :pressed, etc.)
  • Theme modularization through ResourceInclude
  • Work can be split by file for team collaboration

6.5.2 Key Differences Between WPF and AvaloniaUI

Item WPF AvaloniaUI
File Extension .xaml .axaml
Style Definition Style + ControlTemplate ControlTheme
State Management Trigger, DataTrigger Pseudo Classes, Style Selector
CSS Support ❌ ✅ (Classes attribute)
Resource Merging MergedDictionaries + ResourceDictionary MergedDictionaries + ResourceInclude
Dependency Props DependencyProperty StyledProperty, DirectProperty

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!

Skill Details

GitHub Stars 66
GitHub Forks 19
Created Mar 2026
Last Updated 7个月前
development development cms platforms

Related Skills

ui-ux-pro-max
chevron_right
building-agents
chevron_right
nestjs-expert
chevron_right
prisma-expert
chevron_right
ui-ux-pro-max
chevron_right

Build your own?

Join 12,000+ developers contributing to the Claude ecosystem.