axaml-syntax-reference
Quick reference for Avalonia XAML (AXAML) syntax including namespaces, property syntax, bindings, styles, and SukiUI patterns
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Quick reference for Avalonia XAML (AXAML) syntax including namespaces, property syntax, bindings, styles, and SukiUI patterns
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Implement MVVM patterns using CommunityToolkit.Mvvm in Avalonia applications with ViewModels, Commands, and Dependency Injection
A guide on working with claims in asp.net core
Guides agents on implmenting policy based authorization in Asp.net
Comprehensive guide to data binding patterns in Avalonia for AI agents.
| name | axaml-syntax-reference |
| description | Quick reference for Avalonia XAML (AXAML) syntax including namespaces, property syntax, bindings, styles, and SukiUI patterns |
| license | MIT |
| compatibility | opencode |
| metadata | {"audience":"avalonia-developers","framework":"avalonia"} |
Complete reference for Avalonia XAML (AXAML) syntax.
Use this skill when you need to:
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="600"
x:Class="Namespace.Views.ViewName"
x:DataType="vm:ViewModelName">
<!-- Content -->
</UserControl>
Attributes:
x:Class: Code-behind class (required)x:DataType: ViewModel type for compiled bindings (required)Standard:
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
SukiUI (Critical): Always use the URL-based namespace.
xmlns:suki="https://github.com/kikipoulet/SukiUI"
Custom:
xmlns:vm="using:YourApp.ViewModels"
xmlns:views="using:YourApp.Views"
xmlns:local="clr-namespace:YourApp"
Attribute (Simple):
<Button Content="Click" Width="100" />
Element (Complex):
<Button>
<Button.Content>
<StackPanel>
<TextBlock Text="A" />
<TextBlock Text="B" />
</StackPanel>
</Button.Content>
</Button>
Modes: OneWay (default), TwoWay (input), OneTime, OneWayToSource
Syntax:
<!-- Property -->
<TextBlock Text="{Binding Name}" />
<!-- TwoWay (Input) -->
<TextBox Text="{Binding Name, Mode=TwoWay}" />
<!-- StringFormat -->
<TextBlock Text="{Binding Price, StringFormat='${0:F2}'}" />
<!-- Relative -->
<TextBlock Text="{Binding $parent[Window].Title}" />
<!-- Element -->
<TextBox Name="Input" />
<TextBlock Text="{Binding #Input.Text}" />
Selector Syntax:
<!-- Type -->
<Style Selector="Button">
<Setter Property="Background" Value="Blue" />
</Style>
<!-- Class -->
<Style Selector="Button.Primary">
<Setter Property="Background" Value="Red" />
</Style>
<!-- Pseudo-class -->
<Style Selector="Button:pointerover">
<Setter Property="Opacity" Value="0.8" />
</Style>
<!-- Child combinator -->
<Style Selector="StackPanel > Button">
<Setter Property="Margin" Value="5" />
</Style>
<!-- Descendant combinator -->
<Style Selector="Grid Button">
<Setter Property="Padding" Value="10" />
</Style>
Usage:
<Button Classes="Primary" Content="Red Button" />
{StaticResource Key}: Fixed resource{DynamicResource Key}: Dynamic resource (themes){x:Static Class.Member}: Static member{x:Null}: Null value{Binding Path}: Data binding{CompiledBinding Path}: Explicit compiled binding{ReflectionBinding Path}: Opt-out of compiled bindingExamples:
<!-- Static Resource -->
<TextBlock Text="{StaticResource WelcomeMessage}" />
<!-- Dynamic Resource (for theming) -->
<Button Background="{DynamicResource ThemeBrush}" />
<!-- Static Property -->
<TextBlock TexStatic local:Constants.AppName}" />
<PathIcon Data="{x:Static icons:Icons.Home}" />
<!-- Null Value -->
<Button Command="{x:Null}" />
x:DataType: Always use for compiled bindings
SukiWindow: Use SukiWindow as root for main windows
<suki:SukiWindow xmlns:suki="https://github.com/kikipoulet/SukiUI"
x:Class="YourApp.Views.MainWindow"
Title="My App"
Width="1200"
Height="800">
<!-- Content -->
</suki:SukiWindow>
Explicit Sizes: Set explicit Width and Height for windows
BulletDecorator: Deprecated. Use StackPanel with Orientation="Horizontal"
TwoWay Binding: Always explicit for input controls
<TextBox Text="{Binding Name, Mode=TwoWay}" />
Namespace Prefixes: Use consistent, short prefixes
vm for ViewModelsviews for Viewslocal for current namespacesuki for SukiUI| Mistake | Correction |
|---|---|
Missing x:DataType | Add x:DataType="vm:MyVM" |
xmlns:suki="using:..." | Use xmlns:suki="https://github.com/..." |
<Window> with Suki | Use <suki:SukiWindow> |
| Default Binding on Input | Use Mode=TwoWay |
Missing x:Class | Add x:Class="Namespace.Views.ViewName" |
<suki:SukiWindow xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:suki="https://github.com/kikipoulet/SukiUI"
xmlns:vm="using:YourApp.ViewModels"
xmlns:views="using:YourApp.Views"
x:Class="YourApp.Views.MainWindow"
x:DataType="vm:MainWindowViewModel"
Title="My Application"
Width="1200"
Height="800">
<!-- DataTemplates for navigation -->
<suki:SukiWindow.DataTemplates>
<DataTemplate DataType="vm:HomePageViewModel">
<views:HomePage />
</DataTemplate>
<DataTemplate DataType="vm:SettingsPageViewModel">
<views:Setting />
</DataTemplate>
</suki:SukiWindow.DataTemplates>
<!-- Content -->
<Grid>
<!-- Your UI here -->
</Grid>
</suki:SukiWindow>
<suki:SukiSideMenu ItemsSource="{Binding Pages}"
SelectedItem="{Binding SelectedPage, Mode=TwoWay}"
HeaderContent="{Binding AppTitle}">
<suki:SukiSideMenu.ItemTemplate>
<DataTemplate>
<suki:SukiSideMenuItem Header="{Binding DisplayName}">
<suki:SukiSideMenuItem.Icon>
<PathIcon Data="{Binding Icon}" />
</suki:SukiSideMenuItem.Icon>
</suki:SukiSideMenuItem>
</DataTemplate>
</suki:SukiSideMenu.ItemTemplate>
</suki:SukiSideMenu>
Binding not working?
x:DataType is setMode=TwoWay for input controlsSukiUI controls not found?
xmlns:suki="https://github.com/kikipoulet/SukiUI"<suki:SukiWindow> not <Window>Navigation not working?
Styles not applying?