You can create your own custom designer experiences for the Windows Presentation Foundation (WPF) Designer for Visual Studio. The WPF Designer provides a framework and a public API which you can use to implement custom adorners, tools, property editors, and designers.

In This Section
- WPF Designer Extensibility Architecture
Describes the overall architecture of the WPF Designer extensibility framework.
- Understanding WPF Designer Extensibility
Topics that describe how to create your own custom designer experiences for the WPF Designer.
- Basic Extensibility Concepts
Contains topics that describe how to perform basic extensibility tasks, such as creating custom menu actions.
- Creating Custom Adorners
Contains topics that describe how to create custom adorners, such as rails.
- Creating Custom Editors
Contains topics that describe how to create custom editors, such as color editors.
- Design Time versus Run Time Behavior
Contains topics that describe how to implement custom design-time logic.
- Advanced Extensibility Concepts
Contains topics that describe how to perform advanced extensibility tasks, such as creating surrogate policies.
- WPF Designer Extensibility Reference
Describes the extensibility reference API for the WPF Designer.

Reference
- AdornerPanel
Provides a container for WPF controls, which are used at design time as adorners.
- AdornerProvider
A feature provider that you can add to a class to automatically add adorners to the designer surface.
- EditingContext
Contains contextual state about a designer.
- ModelItem
Represents a single item in the editing model.
- ModelService
The main entry point the designer uses to obtain the model.
- ModelFactory
Creates instances of items in the designer.
- FeatureProvider
Adds a class-specific contribution to a feature.
- FeatureConnectorAttribute
Contains the type of FeatureConnector<(Of <(TFeatureProviderType>)>) required to handle a FeatureProvider
- FeatureManager
Manages feature providers and feature connectors.
- AttributeTableBuilder
Creates an attribute table that can be passed to the metadata store.
- PropertyValue
Provides a data model for an underlying common language runtime (CLR) property value.
- PropertyValueEditor
Container for inline editor logic for properties.
- Task
A collection of commands and input bindings to those commands.
- Tool
Determines the mode of the designer.

Related Sections
- Troubleshooting WPF Designer Load Failures
Describes procedures for understanding unexpected behavior in your custom designer code.
- Using Windows Presentation Foundation Controls
Contains links that describe how to use WPF controls in Windows Forms.
- Migration and Interoperability
Describes interoperation between the WPF and Windows Forms technologies.