WPF and C# Code Formatting
Applies consistent code style to XAML and C# files.
- Required Tools
.NET 10 SDK
All commands use dotnet dnx for cross-platform compatibility (Windows, Linux, macOS).
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.
- 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
- Formatting Commands
XAML Formatting
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
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 file
- Workflow
Full Formatting
Task Progress:
- Step 1: Check if Settings.XamlStyler exists, create if not
- Step 2: Check if .editorconfig exists, create if not
- Step 3: Run dotnet dnx XamlStyler.Console for XAML formatting
- Step 4: Run dotnet format for C# formatting
Per-file Formatting (Hook Usage)
- When .xaml file modified: Run dotnet dnx XamlStyler.Console
- When .cs file modified: Run dotnet format
- Notes
-
Check git status: Verify uncommitted changes before formatting
-
Binary exclusion: bin/, obj/ folders automatically excluded
-
Encoding: UTF-8 with BOM maintained (Visual Studio compatible)
- References
-
XamlStyler GitHub
-
dotnet format Documentation
-
.editorconfig Specification