-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
Context
The Windows Forms SDK consist of two distinct parts – the runtime (the code that executes, open sourced in this repo) and the designer (consists of the "general purpose" and "Visual Studio-specific" components, close sourced). In .NET Framework these two parts lived together, and that allowed customers to invoke and use VS-specific functionality. Skip forward to .NET Core/.NET and these two components are now split and evolve (for the most part) independently of each other.
The more and more customers are starting to migrate their apps to .NET the more we see the demand to the missing designer capabilities to be ported over to .NET (e.g. #1395, #2573, #4456, #4886, #4887, AB#1314797).
In scope:
However we need to port the general purpose designer infrastructure – i.e. API that enable building "a designer that the user can embed in their application". For example, a user might have a business application that contains a report designer feature, which can use our "general designer" framework.
-
The following designers are currently available (though may have restricted or incomplete functionality):
- System.ComponentModel.Design.ComponentDesigner
- System.Windows.Forms.Design.DocumentDesigner (Adding other assemblies to the repo #122)
- System.Windows.Forms.Design.FormDocumentDesigner (Port ControlDesigner #681)
- System.Windows.Forms.Design.MaskedTextBoxDesigner (Add "SetTextualDefaultProperty = false" for MaskedTextBox #9709)
- System.Windows.Forms.Design.ParentControlDesigner (Adding other assemblies to the repo #122)
- System.Windows.Forms.Design.ScrollableControlDesigner (Adding other assemblies to the repo #122)
- System.Windows.Forms.Design.TextBoxBaseDesigner
- System.Windows.Forms.Design.ToolStripDesigner
- System.Windows.Forms.Design.ToolStripDropDownDesigner
- System.Windows.Forms.Design.ToolStripItemDesigner
- System.Windows.Forms.Design.ToolStripMenuItemDesigner
-
The following designers are missing and will be ported in scope of Port missing designer infra #4860:
- System.Windows.Forms.Design.ButtonBaseDesigner
- System.Windows.Forms.Design.ControlDesigner
- System.Windows.Forms.Design.DocumentDesigner - functionality restored
- System.Windows.Forms.Design.LabelDesigner
- System.Windows.Forms.Design.ParentControlDesigner - functionality restored
- System.Windows.Forms.Design.ScrollableControlDesigner - functionality restored
- System.Windows.Forms.Design.TextBoxDesigner
- System.Windows.Forms.Design.ComboBoxDesigner
- System.Windows.Forms.Design.GroupBoxDesigner
- System.Windows.Forms.Design.ListBoxDesigner
- System.Windows.Forms.Design.ListViewDesigner
- System.Windows.Forms.Design.PanelDesigner
- System.Windows.Forms.Design.PictureBoxDesigner
- System.Windows.Forms.Design.RadioButtonDesigner
- System.Windows.Forms.Design.RichTextBoxDesigner
- System.Windows.Forms.Design.TreeViewDesigner Port TreeNodeCollectionEditor to core #11221
- System.Windows.Forms.Design.UpDownBaseDesigner
- System.Windows.Forms.Design.UserControlDocumentDesigner
Open for consideration
The following API may be considered for porting upon significant demand and real use cases.
- The following designers:
- System.Windows.Forms.Design.DateTimePickerDesigner (Port DateTimePickerDesigner to runtime #8549)
- System.Windows.Forms.Design.FlowLayoutPanelDesigner (Port FlowLayoutPanelDesigner to runtime #9658 9658)
- System.Windows.Forms.Design.MonthCalendarDesigner (Port MonthCalendarDesigner to runtime #9536)
- System.Windows.Forms.Design.PrintDialogDesigner (Add PrintDialogDesigner.cs #9595 )
- System.Windows.Forms.Design.TableLayoutPanelDesigner(Port TableLayoutPanelDesigner, TabControlDesigner to runtime #9560)
- System.Windows.Forms.Design.TabControlDesigner(Port TableLayoutPanelDesigner, TabControlDesigner to runtime #9560)
- System.Windows.Forms.Design.TabPageDesigner(Port TableLayoutPanelDesigner, TabControlDesigner to runtime #9560)
- Missing editors for the ported designers, see the list in DesignerAttributes referencing nonexisting classes #2411
Out of scope
- Back-porting of the missing types in .NET Core 3.1 or .NET 5.0, because both of these are going out of support shortly after .NET 6.0 is released.
- The VS-specific designer functionality will not be made available, because it makes no sense outside the VS.
- Databinding
- Advanced databinding designers and editors
- The following designers:
- System.Windows.Forms.Design.AxDesigner (Tracked with Support AxDesigner, AxHostDesigner and WebBrowserDesigner capabilities at runtime #9810)
- System.Windows.Forms.Design.AxHostDesigner (Tracked with Support AxDesigner, AxHostDesigner and WebBrowserDesigner capabilities at runtime #9810)
- System.Windows.Forms.Design.BindingNavigatorDesigner(Port BindingSourceDesigner, BindingNavigatorDesigner to runtime #9749)
- System.Windows.Forms.Design.BindingSourceDesigner(Port BindingSourceDesigner, BindingNavigatorDesigner to runtime #9749)
- System.Windows.Forms.Design.DataGridViewColumnDesigner (Port DataGridviewDesigner to runtime #9677)
- System.Windows.Forms.Design.DataGridViewComboBoxColumnDesigner (Port DataGridViewComboBoxColumnDesigner to runtime #9869)
- System.Windows.Forms.Design.DataGridViewDesigner (Port DataGridviewDesigner to runtime #9677)
- System.Windows.Forms.Design.FolderBrowserDialogDesigner (Issus 4908 port save file dialog designer and folder browser dialog designer #9682)
- System.Windows.Forms.Design.ImageListDesigner
- System.Windows.Forms.Design.NotifyIconDesigner (Port PropertyGridDesigner and NotifyIconDesigner to runtime #4908 #9645)
- System.Windows.Forms.Design.PropertyGridDesigner (Port PropertyGridDesigner and NotifyIconDesigner to runtime #4908 #9645)
- System.Windows.Forms.Design.SaveFileDialogDesigner (Issus 4908 port save file dialog designer and folder browser dialog designer #9682)
System.Windows.Forms.Design.StatusBarDesigner - System.Windows.Forms.Design.SplitContainerDesigner (Porting SplitContainerDesigner/SplitterPanelDesigner/SplitterDesigner. #9320)
- System.Windows.Forms.Design.SplitterDesigner (Porting SplitContainerDesigner/SplitterPanelDesigner/SplitterDesigner. #9320)
- System.Windows.Forms.Design.SplitterPanelDesigner (Porting SplitContainerDesigner/SplitterPanelDesigner/SplitterDesigner. #9320)
- System.Windows.Forms.Design.ToolStripContainerDesigner (Port ToolStripPanelDesigner, ToolStripContainerDesigner, ToolStripCon… #9750)
- System.Windows.Forms.Design.ToolStripContentPanelDesigner (Port ToolStripPanelDesigner, ToolStripContainerDesigner, ToolStripCon… #9750)
- System.Windows.Forms.Design.ToolStripPanelDesigner (Port ToolStripPanelDesigner, ToolStripContainerDesigner, ToolStripCon… #9750)
- System.Windows.Forms.Design.TrackBarDesigner (Port TrackBarDesigner to runtime #9703)
- System.Windows.Forms.Design.WebBrowserDesigner (Tracked with Support AxDesigner, AxHostDesigner and WebBrowserDesigner capabilities at runtime #9810)