Implementing the Syncfusion Blazor Image Editor Component
The Syncfusion Blazor Image Editor is a powerful, feature-rich component for building image editing capabilities into your Blazor applications. It provides a complete toolkit for image manipulation, annotation, transformation, and export with an intuitive UI and extensive API.
Navigation Guide
Getting Started
📄 Read: references/getting-started.md
- Installation of NuGet packages (Syncfusion.Blazor.ImageEditor, Syncfusion.Blazor.Themes)
- Blazor WebAssembly and Web App setup
- Import namespaces and register services
- Add stylesheet and script references
- Render the basic component
- NEW: Component properties (AllowUndoRedo, IsReadOnly, Enabled, Theme, CssClass, EnableImageSmoothing)
Core Operations
📄 Read: references/core-operations.md
- Open/load images from file explorer
- NEW: Complete OpenAsync signature with all 6 parameters (resetChanges, fillColor, width, height, isAspectRatio)
- Save and export images (PNG, JPEG, SVG, WEBP formats)
- Image quality settings for JPEG export
- Undo and redo operations with keyboard shortcuts (CanUndoAsync, CanRedoAsync)
- Reset image to original state
- NEW: Apply and Discard changes, Clear image, Get image data methods
Image Transformations
📄 Read: references/image-transformations.md
- Crop images with custom, circle, square, or ratio selections
- Rotate left, right, and arbitrary angles
- Flip horizontally and vertically
- Straighten images with slider control
- NEW: StraightenImageAsync method for precise angle adjustment (-45 to +45 degrees)
- Resize images to specific dimensions
- Pan images within the canvas
Annotations
📄 Read: references/annotations.md
- Add text annotations with customization (font, size, color, bold, italic, underline, strikethrough)
- NEW: Complete DrawTextAsync with underline and strikethrough parameters
- Create multiline text annotations
- Enable freehand drawing with stroke control
- Draw shapes (rectangles, ellipses, arrows, paths, lines)
- Insert image annotations (watermarks, logos, decorative elements)
- NEW: Annotation z-order management (BringToFrontAsync, SendToBackAsync, BringForwardAsync, SendBackwardAsync)
- NEW: Clone annotations with CloneShapeAsync
- NEW: Enable/disable annotation modes (EnableActiveAnnotationAsync, DisableActiveAnnotationAsync)
- NEW: Enable text editing mode
- Delete and manage annotations using ShapeSettings and IDs
Annotation Styling
📄 Read: references/annotation-styling.md
- Customize stroke width, color, and fill colors
- Apply font styling for text annotations
- Use ShapeChanging event for dynamic customization
- Configure default stroke colors and styles
- Work with ShapeSettings properties
Adjustments, Filters & Effects
📄 Read: references/adjustments-filters-effects.md
- Apply fine-tuning adjustments (brightness, contrast, saturation, hue, blur, etc.)
- Use slider controls for adjustment preview
- Apply filters to images (predefined effects)
- Add frame effects to images
- Commit or preview changes before applying
Redaction
📄 Read: references/redaction.md NEW
- Draw redactions with blur or pixelate effects
- RedactType enum (Blur, Pixelate)
- Control blur intensity and pixel size
- Get, select, update, and delete redactions
- RedactSettings class properties
- Privacy protection and GDPR compliance use cases
Frames
📄 Read: references/frames.md NEW
- Apply decorative frames to images
- FrameType enum (Mat, Bevel, Line, Inset, Hook)
- Customize frame colors, gradients, sizes
- FrameLineStyle for Line frames (Solid, Dashed, Dotted)
- Configure inset, offset, border radius, and line count
- Professional photo presentation examples
Events Reference
📄 Read: references/events-reference.md NEW
- Complete ImageEditorEvents documentation
- Lifecycle events (Created, Destroyed)
- File operation events (FileOpened, Saving)
- Transformation events (Cropping/Cropped, Rotating/Rotated, Flipping/Flipped)
- Shape events (ShapeChanging/ShapeChanged, resize/drag start/end)
- Adjustment events (ImageFiltering/Filtered, FinetuneValueChanging/Changed, FrameChanging/Changed)
- User interaction events (Zooming/Zoomed, OnPanStart/End, Clicked)
- Toolbar events (ToolbarUpdating, ToolbarItemClicked, QuickAccessToolbarOpening)
- History events (HistoryChanged)
- Event arguments reference for all events
Toolbar Customization
📄 Read: references/toolbar-customization.md
- Reference of built-in toolbar items (Open, Crop, Rotate, Annotation, Filters, etc.)
- Add custom toolbar items and buttons
- Show/hide entire toolbar or specific items
- Enable/disable toolbar items conditionally
- Customize contextual toolbars using ToolbarUpdating event
- Create custom toolbar templates
User Interactions
📄 Read: references/user-interactions.md
- Zoom methods (toolbar buttons, pinch gesture, mouse wheel, keyboard shortcuts)
- Pan/move images across the canvas
- Selection types for cropping
- Get image dimensions and coordinates
- Keyboard shortcuts reference (Ctrl+Z, Ctrl+Y, Ctrl+S, etc.)
Accessibility & Localization
📄 Read: references/accessibility-localization.md
- WCAG compliance and accessibility features
- Keyboard navigation support
- Screen reader compatibility
- ARIA attributes
- Color contrast standards
- Localization and RTL support
Setup Modes & Deployment
📄 Read: references/setup-modes.md
- WebAssembly app setup (Visual Studio, VS Code, .NET CLI)
- Web App setup with interactive render modes (Auto, WebAssembly, Server)
- Theme configuration (Bootstrap5, Fluent2, Material3, Tailwind3)
- Static Web Assets vs CDN references
- Script references and dependencies
Quick Start Example
@using Syncfusion.Blazor.ImageEditor
<SfImageEditor @ref="ImageEditor" Height="500px" Width="100%">
<ImageEditorEvents Created="OnCreated"></ImageEditorEvents>
</SfImageEditor>
@code {
SfImageEditor ImageEditor;
private async void OnCreated()
{
// Load an image when component is ready
await ImageEditor.OpenAsync("path/to/image.png");
}
}
Setup steps:
- Install NuGet packages:
Syncfusion.Blazor.ImageEditor and Syncfusion.Blazor.Themes
- Add imports in
_Imports.razor: @using Syncfusion.Blazor.ImageEditor
- Register service in
Program.cs: builder.Services.AddSyncfusionBlazor();
- Add theme stylesheet to
index.html or App.razor
- Add the component and load an image in the
Created event
Key Capabilities
| Feature |
Purpose |
Reference |
| Image Loading |
Open JPEG, PNG, JPG, WEBP, BMP files |
core-operations.md |
| Text Annotations |
Add labels, captions, watermarks with underline/strikethrough |
annotations.md |
| Shape Annotations |
Draw rectangles, ellipses, arrows, paths with z-order control |
annotations.md |
| Freehand Drawing |
Sketch and draw directly on images |
annotations.md |
| Redaction |
Hide sensitive info with blur/pixelate for privacy compliance |
redaction.md |
| Frames |
Apply decorative borders (Mat, Bevel, Line, Inset, Hook) |
frames.md |
| Crop & Transform |
Crop with multiple selection types, rotate, flip, straighten |
image-transformations.md |
| Filters & Effects |
Apply fine-tuning and predefined filters |
adjustments-filters-effects.md |
| Zoom & Pan |
Multiple zoom methods and image panning |
user-interactions.md |
| Export |
Save as PNG, JPEG, SVG, WEBP with quality control |
core-operations.md |
| Undo/Redo |
Full history of operations |
core-operations.md |
| Events |
30+ lifecycle, transformation, shape, and interaction events |
events-reference.md |
| Toolbar |
Built-in or custom toolbar with events |
toolbar-customization.md |
| Accessibility |
Keyboard navigation, screen readers, RTL, localization |
accessibility-localization.md |
Common Patterns
Pattern 1: Load Image and Enable Annotations
<SfImageEditor @ref="ImageEditor" Height="500px">
<ImageEditorEvents Created="OnCreated"></ImageEditorEvents>
</SfImageEditor>
@code {
SfImageEditor ImageEditor;
private string ImageUrl = "YOUR_IMAGE_URL";
private async void OnCreated()
{
await ImageEditor.OpenAsync(ImageUrl);
}
private async Task AddTextAnnotation()
{
ImageDimension dim = await ImageEditor.GetImageDimensionAsync();
await ImageEditor.DrawTextAsync(dim.X.Value, dim.Y.Value, "Important", "Arial", 24);
}
}
Pattern 2: Custom Toolbar
<SfImageEditor @ref="ImageEditor" Toolbar="@CustomToolbar" Height="500px">
<ImageEditorEvents Created="OnCreated" ToolbarItemClicked="OnToolbarClick"></ImageEditorEvents>
</SfImageEditor>
@code {
private List<ImageEditorToolbarItemModel> CustomToolbar = new()
{
new ImageEditorToolbarItemModel { Name = "Open" },
new ImageEditorToolbarItemModel { Name = "Crop" },
new ImageEditorToolbarItemModel { Name = "Annotation" },
new ImageEditorToolbarItemModel { Name = "Save" }
};
}
Pattern 3: Export Image with Quality Control
private async Task ExportImage()
{
// Export as PNG (lossless, default)
await ImageEditor.ExportAsync("edited-image.png");
// Export as JPEG with quality control (0.0 to 1.0)
await ImageEditor.ExportAsync("photo.jpg", ImageEditorFileType.JPEG, 0.85);
// Export as WEBP (modern format)
await ImageEditor.ExportAsync("image.webp", ImageEditorFileType.WEBP);
// Export as SVG (vector format)
await ImageEditor.ExportAsync("graphic.svg", ImageEditorFileType.SVG);
// Or press Ctrl+S to open export dialog with format selection
}
Pattern 4: Privacy Redaction Workflow
<SfImageEditor @ref="ImageEditor" Height="500px">
<ImageEditorEvents Created="OnCreated"></ImageEditorEvents>
</SfImageEditor>
@code {
SfImageEditor ImageEditor;
private async Task RedactSensitiveInfo()
{
// Draw blur redaction over sensitive areas
await ImageEditor.DrawRedactAsync(
RedactType.Blur,
startX: 100, startY: 100,
width: 200, height: 50,
value: 30 // Blur intensity
);
// Draw pixelate redaction over other areas
await ImageEditor.DrawRedactAsync(
RedactType.Pixelate,
startX: 400, startY: 200,
width: 200, height: 50,
value: 20 // Pixel size
);
// Export redacted image
await ImageEditor.ExportAsync("redacted-document.png");
}
}
Pattern 5: Professional Photo Framing
<SfImageEditor @ref="ImageEditor" Height="500px">
<ImageEditorEvents Created="OnCreated"></ImageEditorEvents>
</SfImageEditor>
@code {
SfImageEditor ImageEditor;
private async Task ApplyPhotoFrame()
{
// Load portrait image
await ImageEditor.OpenAsync("portrait.jpg");
// Apply classic mat frame with gradient
await ImageEditor.DrawFrameAsync(
FrameType.Mat,
color: "#FFFFFF",
gradientColor: "#F5F5DC",
size: 50,
inset: 20
);
// Export framed image
await ImageEditor.ExportAsync("framed-portrait.png");
}
}
Related Skills
Note: All code examples use Blazor component syntax. Refer to the Getting Started guide for setup instructions specific to your Blazor hosting model (WebAssembly, Web App, Server).
1---2name: syncfusion-blazor-image-editor3description: Implement comprehensive image editing capabilities in Blazor applications using the Syncfusion Image Editor component. Use this skill when implementing image editing, annotations, transformations, cropping, filtering, zooming, and panning features. Supports annotations (text, shapes, freehand), transformations (crop, rotate, flip, resize), effects (filters, fine-tuning), toolbar customization, and keyboard shortcuts.4---5
6# Implementing the Syncfusion Blazor Image Editor Component
7
8The Syncfusion Blazor Image Editor is a powerful, feature-rich component for building image editing capabilities into your Blazor applications. It provides a complete toolkit for image manipulation, annotation, transformation, and export with an intuitive UI and extensive API.
9
10## Navigation Guide
11
12### Getting Started
13📄 **Read:** [references/getting-started.md](references/getting-started.md)
14- Installation of NuGet packages (Syncfusion.Blazor.ImageEditor, Syncfusion.Blazor.Themes)
15- Blazor WebAssembly and Web App setup
16- Import namespaces and register services
17- Add stylesheet and script references
18- Render the basic component
19- **NEW:** Component properties (AllowUndoRedo, IsReadOnly, Enabled, Theme, CssClass, EnableImageSmoothing)
20
21### Core Operations
22📄 **Read:** [references/core-operations.md](references/core-operations.md)
23- Open/load images from file explorer
24- **NEW:** Complete OpenAsync signature with all 6 parameters (resetChanges, fillColor, width, height, isAspectRatio)
25- Save and export images (PNG, JPEG, SVG, WEBP formats)
26- Image quality settings for JPEG export
27- Undo and redo operations with keyboard shortcuts (CanUndoAsync, CanRedoAsync)
28- Reset image to original state
29- **NEW:** Apply and Discard changes, Clear image, Get image data methods
30
31### Image Transformations
32📄 **Read:** [references/image-transformations.md](references/image-transformations.md)
33- Crop images with custom, circle, square, or ratio selections
34- Rotate left, right, and arbitrary angles
35- Flip horizontally and vertically
36- Straighten images with slider control
37- **NEW:** StraightenImageAsync method for precise angle adjustment (-45 to +45 degrees)
38- Resize images to specific dimensions
39- Pan images within the canvas
40
41### Annotations
42📄 **Read:** [references/annotations.md](references/annotations.md)
43- Add text annotations with customization (font, size, color, bold, italic, underline, strikethrough)
44- **NEW:** Complete DrawTextAsync with underline and strikethrough parameters
45- Create multiline text annotations
46- Enable freehand drawing with stroke control
47- Draw shapes (rectangles, ellipses, arrows, paths, lines)
48- Insert image annotations (watermarks, logos, decorative elements)
49- **NEW:** Annotation z-order management (BringToFrontAsync, SendToBackAsync, BringForwardAsync, SendBackwardAsync)
50- **NEW:** Clone annotations with CloneShapeAsync
51- **NEW:** Enable/disable annotation modes (EnableActiveAnnotationAsync, DisableActiveAnnotationAsync)
52- **NEW:** Enable text editing mode
53- Delete and manage annotations using ShapeSettings and IDs
54
55### Annotation Styling
56📄 **Read:** [references/annotation-styling.md](references/annotation-styling.md)
57- Customize stroke width, color, and fill colors
58- Apply font styling for text annotations
59- Use ShapeChanging event for dynamic customization
60- Configure default stroke colors and styles
61- Work with ShapeSettings properties
62
63### Adjustments, Filters & Effects
64📄 **Read:** [references/adjustments-filters-effects.md](references/adjustments-filters-effects.md)
65- Apply fine-tuning adjustments (brightness, contrast, saturation, hue, blur, etc.)
66- Use slider controls for adjustment preview
67- Apply filters to images (predefined effects)
68- Add frame effects to images
69- Commit or preview changes before applying
70
71### Redaction
72📄 **Read:** [references/redaction.md](references/redaction.md) **NEW**
73- Draw redactions with blur or pixelate effects
74- RedactType enum (Blur, Pixelate)
75- Control blur intensity and pixel size
76- Get, select, update, and delete redactions
77- RedactSettings class properties
78- Privacy protection and GDPR compliance use cases
79
80### Frames
81📄 **Read:** [references/frames.md](references/frames.md) **NEW**
82- Apply decorative frames to images
83- FrameType enum (Mat, Bevel, Line, Inset, Hook)
84- Customize frame colors, gradients, sizes
85- FrameLineStyle for Line frames (Solid, Dashed, Dotted)
86- Configure inset, offset, border radius, and line count
87- Professional photo presentation examples
88
89### Events Reference
90📄 **Read:** [references/events-reference.md](references/events-reference.md) **NEW**
91- Complete ImageEditorEvents documentation
92- Lifecycle events (Created, Destroyed)
93- File operation events (FileOpened, Saving)
94- Transformation events (Cropping/Cropped, Rotating/Rotated, Flipping/Flipped)
95- Shape events (ShapeChanging/ShapeChanged, resize/drag start/end)
96- Adjustment events (ImageFiltering/Filtered, FinetuneValueChanging/Changed, FrameChanging/Changed)
97- User interaction events (Zooming/Zoomed, OnPanStart/End, Clicked)
98- Toolbar events (ToolbarUpdating, ToolbarItemClicked, QuickAccessToolbarOpening)
99- History events (HistoryChanged)
100- Event arguments reference for all events
101
102### Toolbar Customization
103📄 **Read:** [references/toolbar-customization.md](references/toolbar-customization.md)
104- Reference of built-in toolbar items (Open, Crop, Rotate, Annotation, Filters, etc.)
105- Add custom toolbar items and buttons
106- Show/hide entire toolbar or specific items
107- Enable/disable toolbar items conditionally
108- Customize contextual toolbars using ToolbarUpdating event
109- Create custom toolbar templates
110
111### User Interactions
112📄 **Read:** [references/user-interactions.md](references/user-interactions.md)
113- Zoom methods (toolbar buttons, pinch gesture, mouse wheel, keyboard shortcuts)
114- Pan/move images across the canvas
115- Selection types for cropping
116- Get image dimensions and coordinates
117- Keyboard shortcuts reference (Ctrl+Z, Ctrl+Y, Ctrl+S, etc.)
118
119### Accessibility & Localization
120📄 **Read:** [references/accessibility-localization.md](references/accessibility-localization.md)
121- WCAG compliance and accessibility features
122- Keyboard navigation support
123- Screen reader compatibility
124- ARIA attributes
125- Color contrast standards
126- Localization and RTL support
127
128### Setup Modes & Deployment
129📄 **Read:** [references/setup-modes.md](references/setup-modes.md)
130- WebAssembly app setup (Visual Studio, VS Code, .NET CLI)
131- Web App setup with interactive render modes (Auto, WebAssembly, Server)
132- Theme configuration (Bootstrap5, Fluent2, Material3, Tailwind3)
133- Static Web Assets vs CDN references
134- Script references and dependencies
135
136## Quick Start Example
137
138```csharp
139@using Syncfusion.Blazor.ImageEditor
140
141<SfImageEditor @ref="ImageEditor" Height="500px" Width="100%">
142 <ImageEditorEvents Created="OnCreated"></ImageEditorEvents>
143</SfImageEditor>
144
145@code {
146 SfImageEditor ImageEditor;
147
148 private async void OnCreated()
149 {
150 // Load an image when component is ready
151 await ImageEditor.OpenAsync("path/to/image.png");
152 }
153}
154```
155
156**Setup steps:**
1571. Install NuGet packages: `Syncfusion.Blazor.ImageEditor` and `Syncfusion.Blazor.Themes`
1582. Add imports in `_Imports.razor`: `@using Syncfusion.Blazor.ImageEditor`
1593. Register service in `Program.cs`: `builder.Services.AddSyncfusionBlazor();`
1604. Add theme stylesheet to `index.html` or `App.razor`
1615. Add the component and load an image in the `Created` event
162
163## Key Capabilities
164
165| Feature | Purpose | Reference |
166|---------|---------|-----------|
167| **Image Loading** | Open JPEG, PNG, JPG, WEBP, BMP files | core-operations.md |
168| **Text Annotations** | Add labels, captions, watermarks with underline/strikethrough | annotations.md |
169| **Shape Annotations** | Draw rectangles, ellipses, arrows, paths with z-order control | annotations.md |
170| **Freehand Drawing** | Sketch and draw directly on images | annotations.md |
171| **Redaction** | Hide sensitive info with blur/pixelate for privacy compliance | redaction.md |
172| **Frames** | Apply decorative borders (Mat, Bevel, Line, Inset, Hook) | frames.md |
173| **Crop & Transform** | Crop with multiple selection types, rotate, flip, straighten | image-transformations.md |
174| **Filters & Effects** | Apply fine-tuning and predefined filters | adjustments-filters-effects.md |
175| **Zoom & Pan** | Multiple zoom methods and image panning | user-interactions.md |
176| **Export** | Save as PNG, JPEG, SVG, WEBP with quality control | core-operations.md |
177| **Undo/Redo** | Full history of operations | core-operations.md |
178| **Events** | 30+ lifecycle, transformation, shape, and interaction events | events-reference.md |
179| **Toolbar** | Built-in or custom toolbar with events | toolbar-customization.md |
180| **Accessibility** | Keyboard navigation, screen readers, RTL, localization | accessibility-localization.md |
181
182## Common Patterns
183
184### Pattern 1: Load Image and Enable Annotations
185```csharp
186<SfImageEditor @ref="ImageEditor" Height="500px">
187 <ImageEditorEvents Created="OnCreated"></ImageEditorEvents>
188</SfImageEditor>
189
190@code {
191 SfImageEditor ImageEditor;
192 private string ImageUrl = "YOUR_IMAGE_URL";
193
194 private async void OnCreated()
195 {
196 await ImageEditor.OpenAsync(ImageUrl);
197 }
198
199 private async Task AddTextAnnotation()
200 {
201 ImageDimension dim = await ImageEditor.GetImageDimensionAsync();
202 await ImageEditor.DrawTextAsync(dim.X.Value, dim.Y.Value, "Important", "Arial", 24);
203 }
204}
205```
206
207### Pattern 2: Custom Toolbar
208```csharp
209<SfImageEditor @ref="ImageEditor" Toolbar="@CustomToolbar" Height="500px">
210 <ImageEditorEvents Created="OnCreated" ToolbarItemClicked="OnToolbarClick"></ImageEditorEvents>
211</SfImageEditor>
212
213@code {
214 private List<ImageEditorToolbarItemModel> CustomToolbar = new()
215 {
216 new ImageEditorToolbarItemModel { Name = "Open" },
217 new ImageEditorToolbarItemModel { Name = "Crop" },
218 new ImageEditorToolbarItemModel { Name = "Annotation" },
219 new ImageEditorToolbarItemModel { Name = "Save" }
220 };
221}
222```
223
224### Pattern 3: Export Image with Quality Control
225```csharp
226private async Task ExportImage()
227{
228 // Export as PNG (lossless, default)
229 await ImageEditor.ExportAsync("edited-image.png");
230
231 // Export as JPEG with quality control (0.0 to 1.0)
232 await ImageEditor.ExportAsync("photo.jpg", ImageEditorFileType.JPEG, 0.85);
233
234 // Export as WEBP (modern format)
235 await ImageEditor.ExportAsync("image.webp", ImageEditorFileType.WEBP);
236
237 // Export as SVG (vector format)
238 await ImageEditor.ExportAsync("graphic.svg", ImageEditorFileType.SVG);
239
240 // Or press Ctrl+S to open export dialog with format selection
241}
242```
243
244### Pattern 4: Privacy Redaction Workflow
245```csharp
246<SfImageEditor @ref="ImageEditor" Height="500px">
247 <ImageEditorEvents Created="OnCreated"></ImageEditorEvents>
248</SfImageEditor>
249
250@code {
251 SfImageEditor ImageEditor;
252
253 private async Task RedactSensitiveInfo()
254 {
255 // Draw blur redaction over sensitive areas
256 await ImageEditor.DrawRedactAsync(
257 RedactType.Blur,
258 startX: 100, startY: 100,
259 width: 200, height: 50,
260 value: 30 // Blur intensity
261 );
262
263 // Draw pixelate redaction over other areas
264 await ImageEditor.DrawRedactAsync(
265 RedactType.Pixelate,
266 startX: 400, startY: 200,
267 width: 200, height: 50,
268 value: 20 // Pixel size
269 );
270
271 // Export redacted image
272 await ImageEditor.ExportAsync("redacted-document.png");
273 }
274}
275```
276
277### Pattern 5: Professional Photo Framing
278```csharp
279<SfImageEditor @ref="ImageEditor" Height="500px">
280 <ImageEditorEvents Created="OnCreated"></ImageEditorEvents>
281</SfImageEditor>
282
283@code {
284 SfImageEditor ImageEditor;
285
286 private async Task ApplyPhotoFrame()
287 {
288 // Load portrait image
289 await ImageEditor.OpenAsync("portrait.jpg");
290
291 // Apply classic mat frame with gradient
292 await ImageEditor.DrawFrameAsync(
293 FrameType.Mat,
294 color: "#FFFFFF",
295 gradientColor: "#F5F5DC",
296 size: 50,
297 inset: 20
298 );
299
300 // Export framed image
301 await ImageEditor.ExportAsync("framed-portrait.png");
302 }
303}
304```
305
306## Related Skills
307
308- [Implementing Blazor Components](../implementing-syncfusion-blazor-components/) - Main library overview
309- [Implementing Carousels](../navigation/implementing-carousels/) - Image carousel display
310- [Implementing Rich Text Editor](../file-viewers-editors/implementing-rich-text-editor/) - Text editing capabilities
311
312---
313
314**Note:** All code examples use Blazor component syntax. Refer to the Getting Started guide for setup instructions specific to your Blazor hosting model (WebAssembly, Web App, Server).