designing-avalonia-customcontrol-architecture

6.5 Writing AXAML Code

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "designing-avalonia-customcontrol-architecture" with this command: npx skills add christian289/dotnet-with-claudecode/christian289-dotnet-with-claudecode-designing-avalonia-customcontrol-architecture

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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

converting-html-css-to-wpf-xaml

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

publishing-wpf-apps

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

using-xaml-property-element-syntax

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

managing-styles-resourcedictionary

No summary provided by upstream source.

Repository SourceNeeds Review