XAML Completion Boost
Bring Rider-like XAML completion helpers to Visual Studio.
XAML Completion Boost fills in the discrete-value suggestions that Visual Studio often misses, making enums, booleans, static members, element references, and design-time types feel much closer to the completion experience you get in Rider.
✨ Highlights
🧩 MarkupExtension Constructor Completion
When a MarkupExtension-derived type exposes constructor parameters backed by enums or booleans, the extension offers a value completion list at the argument position.
- Supports enum values and
True / False
- Supports constructors with multiple positional parameters
- Matches the active completion list to the parameter currently being edited
- Shows the same enum value documentation in completion item descriptions and hover tooltips when available
<TextBlock Text="{local:MyExtension Active}" />
⚡ x:Static Static Member Completion
Adds richer completion for x:Static references.
- Suggests namespace prefixes from the current XAML file
- Suggests types under the selected namespace
- Suggests enum values, fields, properties, and other static members on the selected type
- Shows XML documentation comments for static members in completion item descriptions and hover tooltips
<TextBlock Text="{x:Static local:StatusKind.Active}" />
🔗 x:Reference Element Name Completion
Completes element names when writing x:Reference.
- Supports
x:Name
- Supports
Name
- Works in common scenarios such as
Binding Source={x:Reference ...}
<TextBox x:Name="SearchBox" />
<TextBlock Text="{Binding Text, Source={x:Reference SearchBox}}" />
🎨 d:DesignInstance Type Completion
Improves design-time type selection for d:DesignInstance.
- Suggests all namespaces referenced by the current XAML file
- Suggests all types under the selected namespace
- Makes design-time
DataContext setup faster and less string-driven
<Grid d:DataContext="{d:DesignInstance local:MainViewModel}" />
🎯 DataTrigger / MultiDataTrigger Value Completion
Suggests values for trigger conditions when the binding target can be inferred as an enum or boolean.
- Supports
DataTrigger.Value
- Supports
Value inside MultiDataTrigger conditions
- Infers enum or boolean values from the binding path
- Shows enum value documentation in completion item descriptions and hover tooltips when available
<DataTrigger Binding="{Binding State}" Value="Active">
...
</DataTrigger>
The extension uses the same metadata pipeline for completion lists and tooltips, so documentation is consistent between selecting a value and hovering over an existing value.
- Completion item descriptions show enum member comments,
DescriptionAttribute values, static member XML documentation, and resolved enum values when available.
- Hover tooltips are available for
x:Static static members, custom MarkupExtension enum arguments, and enum values used by DataTrigger / MultiDataTrigger.
- Tooltip content is intentionally limited to values the extension can already resolve for completion.
💡 When It Helps
XAML Completion Boost is useful when you frequently write WPF XAML and want fewer hand-written strings in scenarios like:
- Custom
MarkupExtension types with constructor arguments
- Enum or boolean values in XAML
- Static member references through
x:Static
- References to named elements in the current XAML file
- Design-time
DataContext setup with d:DesignInstance