Back to skills
SKILL.md
Designing Avalonia Customcontrol Architecture
ASecurityDefines the basic solution structure for AvaloniaUI Desktop Applications using CustomControl. Use when creating new AvaloniaUI projects or designing stand-alone control styles with ControlTheme.
- 207 stars
- 0 votes
- 0 copies
- 0 views
- Added February 7, 2026
Security analysis
100/100Pro scans all 9 files and shows the line behind each finding
npx -y skills add NeverSight/skills_feed --skill designing-avalonia-customcontrol-architecture --agent claude-codeAre you the author of Designing Avalonia Customcontrol Architecture?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/neversight-designing-avalonia-customcontrol-architecture)---
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 |
Files in this skill
- SKILL.md
- description_cn.txt
- description_de.txt
- description_en.txt
- description_es.txt
- description_fr.txt
- description_ja.txt
- description_ko.txt
- description_tw.txt
Attribution
Comments
Loading comments…