A Design is a .Net object that represents the named state of a component. You can think of a Design as a definition that can contain property/value information that can be applied to specific target types. Any type of instance information can be captured, such as collections and their items, or references to other components. You are not limited to simple property values or appearance properties.
Designbox currently works with Windows Forms controls and components. In general, you can create and apply designs for any .Net object that inherits from the System.Windows.Forms.Control type. This includes third-party control libraries
No, not at this time. We hope to support WPF in a future release of Visual Studio.
No, some simple objects like strings, code snippets, and resources can be added to the Toolbox, but not controls. The reason for this is that the Toolbox needs to serialize all the items it contains. And Windows Forms controls only support code serialization. The Toolbox does not support code serialization.
Designbox uses a unique Xml serialization capability developed for Windows Forms controls. This means that Designbox can serialize controls as Xml and then de-serialize the Xml back to a control. So control and component designs can be easily saved, shared, and cataloged, even to a database.
This is probably the most important aspect of using Designbox. If you find yourself creating new classes solely for the purpose of sharing and reusing control appearance and content, then you are most likely running into class explosion issues and inheritance complications. Designbox gives you a unique way to share and reuse content in Visual Studio that you never had before. One that does not impact your programming model.
Templates are very powerful tools create creating initial content in Visual Studio. However, they are typically written in a specific language and can only be used to create an initial object. Designs, however, are declarative in nature, can be easily redefined using a Design Editor, and they can be applied to existing components.