Formats WPF XAML and C# code using XamlStyler and dotnet format. Generates Settings.XamlStyler and .editorconfig files automatically. Use when code formatting or style cleanup is needed.
View on GitHubchristian289/dotnet-with-claudecode
wpf-dev-pack
January 23, 2026
Select agents to install to:
npx add-skill https://github.com/christian289/dotnet-with-claudecode/blob/main/wpf-dev-pack/skills/formatting-wpf-csharp-code/SKILL.md -a claude-code --skill formatting-wpf-csharp-codeInstallation paths:
.claude/skills/formatting-wpf-csharp-code/# WPF and C# Code Formatting
Applies consistent code style to XAML and C# files.
---
## 1. Required Tools
### .NET 10 SDK
All commands use `dotnet dnx` for cross-platform compatibility (Windows, Linux, macOS).
```bash
# Verify .NET 10 is available
dotnet --version # Should be 10.0.x or higher
```
### XamlStyler (XAML Formatting)
Run via `dotnet dnx` (dotnet tool runner). No manual installation required.
### dotnet format (C# Formatting)
Included with .NET SDK by default.
---
## 2. Configuration Files
### Settings.XamlStyler
Copy from template to workspace root if `Settings.XamlStyler` doesn't exist.
**Template location**: `templates/Settings.XamlStyler`
**Key settings**:
- `AttributesTolerance: 1` - Allow up to 1 attribute on same line
- `KeepFirstAttributeOnSameLine: true` - Keep first attribute on element line
### .editorconfig
Copy from template to workspace root if `.editorconfig` doesn't exist.
**Template location**: `templates/.editorconfig`
**Key settings**:
- Indentation: 4 spaces
- Line ending: CRLF (Windows)
- Max line length: 120
---
## 3. Formatting Commands
### XAML Formatting
```bash
# Format all XAML files in workspace
dotnet dnx -y XamlStyler.Console -- -d "{workspace}" -r -c "{workspace}/Settings.XamlStyler"
# Format single file
dotnet dnx -y XamlStyler.Console -- -f "{file.xaml}" -c "{workspace}/Settings.XamlStyler"
```
**dotnet dnx Options**:
- `-y`: Auto-accept confirmation prompt
- `--`: Separator between dnx options and tool arguments
**XamlStyler Options**:
- `-d`: Target directory
- `-f`: Target file
- `-r`: Recursive processing
- `-c`: Configuration file path
### C# Formatting
```bash
# Format entire solution
dotnet format "{solution.sln}" --no-restore
# Format specific project only
dotnet format "{project.csproj}" --no-restore
# Format single file
dotnet format "{project.csproj}" --include "{file.cs}" --no-restore
```
**Options**:
- `--no-restore`: Skip NuGet restore (faster)
- `--include`: Target specific f