我最近听说.NET Core(.NET Core 3.0)的alpha版本支持Windows Forms和WPF。但是Visual Studio设计师(和Visual Studio) 不支持 .NET Core版本 的Windows Forms和WPF。
有没有办法让Visual Studio设计师(和Visual Studio)与.NET Core 3.0配合使用或者有没有其他的设计师或IDE可以用来与.NET Core 3一起使用?
我最近听说.NET Core(.NET Core 3.0)的alpha版本支持Windows Forms和WPF。但是Visual Studio设计师(和Visual Studio) 不支持 .NET Core版本 的Windows Forms和WPF。
有没有办法让Visual Studio设计师(和Visual Studio)与.NET Core 3.0配合使用或者有没有其他的设计师或IDE可以用来与.NET Core 3一起使用?
从 Visual Studio 16.5 预览版1 开始,Visual Studio 中内置了 Windows Forms 设计器支持。要使用设计器:
更多信息:
请注意,在此版本中,许多控件尚未受到设计器的支持。
从 Visual Studio 16.5 预览版1 开始,Visual Studio 中内置了 Windows Forms 设计器支持。但对于旧版本,您可以使用以下解决方法:
目前,有一个解决方法可以在.NET CORE Windows Forms项目中使用经典的.NET Windows Forms Designer。
这个解决方法依赖于在同一个解决方案中同时拥有经典WinForms应用程序和CORE WinForms应用程序,并且它们的根命名空间相同。
如果要添加新的可设计项,每次需要将其添加到经典项目中,然后将生成的3个文件(.cs、.designer.cs、.resx)移动到CORE应用程序中,并将它们作为链接添加到经典应用程序中。
对于编辑操作,由于它们在经典应用程序中作为链接可用,在经典应用程序的设计器中进行编辑。所有更改都会显示在CORE应用程序中。
准备解决方案以在.NET Core Winforms应用程序中使用Windows Forms Designer
添加表单或用户控件
每次想要添加新表单或用户控件时,需要执行以下步骤:
现在,每当您需要在其中一个核心表单或用户控件文件上使用设计器时,只需使用经典Windows表单设计器打开Classic Framework项目中的链接文件即可。
WPF .NET Core设计器的GA版本与.NET Core 3.0同时发布,并随Visual Studio一起发布。
参考资料:
WPF Designer 是完全独立于 Windows Forms Designer 的。我们在发布 .NET Core 3.0 同时,也发布了 WPF .NET Core 设计器的 GA 版本,并内置于 Visual Studio 中。在 Visual Studio 版本 16.3.0 中,我们遇到了一个问题:默认情况下 Enable XAML Designer 属性被设置为 false。这意味着当您单击 .xaml 文件时,设计器不会自动打开。请升级到最新的 Visual Studio 版本 16.3.1,以解决此问题。另一个修复选项是转到 工具 -> 选项 -> XAML Designer 并勾选 Enable XAML Designer。
Form1
的表单时,它会有一个From1.cs
、Form1.designer.cs
和Form1.resx
。第一个文件包含构造函数和事件处理程序以及所有自定义代码,第二个文件(设计器)包含InitializeComponent
方法和控件声明以及其他与设计有关的内容,第三个文件用于表单资源。默认情况下,设计器和资源文件嵌套在主cs文件下的解决方案资源管理器中。但是按照上述步骤后,解决方案资源管理器将显示它们未嵌套。第9步是将它们重新嵌套。 - Reza Aghaei16.5.2
版本。 - JimiWinForms
项目,您可以参考这个视频如何解决 WinForms 设计器不支持 .net core 3.0 visual studio 2019
由于该视频提供了更多详细信息,我们可以一步步地跟随。它还基于 Microsoft 官方的 github 项目 dotnet/winforms
dotnet/winforms - 在 WinForms Core 中使用传统 WinForms 设计器
我制作的相关代码(VS 项目)已经推送到 github:
WPF
项目,您可以使用以下 XAML 设计器:参考:
dotnet/samples - WPF Hello World sample with linked files
首先,您需要安装 vs 2019 专业版/企业版。然后需要安装 .net core 3.0 SDK。现在您可以尝试创建一个 .net core WPF 应用程序。
在设置相关项目名称和存储路径后,它会弹出:
在VS选项中的.NET Core下勾选“使用预览SDK”。 完成设置后,重新启动vs以生效。右键单击项目 CoreHiWPF
,选择 属性
,然后将其 程序集名称
更改为 HiWPF
。
然后右键单击项目,点击“编辑CoreHiWPF.csproj”。
将代码添加如下: <ItemGroup>
<ApplicationDefinition Include="..\HiWPF\App.xaml" Link="App.xaml">
<Generator>MSBuild:Compile</Generator>
</ApplicationDefinition>
<Compile Include="..\HiWPF\App.xaml.cs" Link="App.xaml.cs" />
</ItemGroup>
<ItemGroup>
<Page Include="..\HiWPF\MainWindow.xaml" Link="MainWindow.xaml">
<Generator>MSBuild:Compile</Generator>
</Page>
<Compile Include="..\HiWPF\MainWindow.xaml.cs" Link="MainWindow.xaml.cs" />
</ItemGroup>
如果 .net core WPF 项目 CoreHiWPF
已经被突出显示,您可以忽略它。否则,您需要选择项目 CoreHiWPF
,然后右键单击 Set As Start up project
。
现在关闭所有已打开的文件。点击项目 HiWPF
的文件 MainWindow.xaml
。然后您就可以在 XAML 设计器中看到空的 WPF 窗口了。
然后,在文件MainWindow.xaml
的Grid
中添加两行:
- 一行是支持换行的Label
- 另一行是一个Exit
按钮。
接着,我为Exit
按钮添加了Click
事件,为Window
添加了Loaded
事件。
F5
运行,最终的用户界面如下:
这段代码已经上传到Github:
你可以直接克隆它来查看。
Form.cs
和 Form.Designer.cs
复制到一个新的位置,删除了应用程序,创建了一个新的应用程序,并使用从复制文件中提取的现有代码。 - SK-the-Learner<ItemGroup>
<Compile Update="Form1.cs">
<SubType>Form</SubType>
</Compile>
</ItemGroup>
所以,如果像我一样,你已经在.gitignore文件中忽略了这个文件并做了git clean操作,那么你就无法再用设计师打开这个文件了。
<Subtype>Form</SubType>
都被删除了。我添加了一个新的Form1.vb,保存并打开关闭了几次项目,最终它们神奇地回来了。 - ourmandave如果表单设计器丢失,请尝试向项目添加另一个 Windows 表单。我这样做后,我的其他 Windows 表单的设计器出现了。
如果您正在使用 Visual Studio 2019,请确保获取包含 Windows 表单设计器的最新更新。一些早期版本不包括它。
Microsoft Visual Studio 专业版 2019 版本 16.7.2 开箱即用。
尽管官方的WPF GitHub Repository声明:
注意:WPF可视化设计器尚未推出,将成为Visual Studio 2019更新的一部分。
但是有这个示例视频,其中使用了可视化设计器。
希望对您有所帮助!