Visual Studio设计器或.NET Core 3.0的其他设计器

时间:2018-12-30 07:07:18

标签: c# wpf winforms .net-core .net-core-3.0

我最近听说.NET Core(.NET Core 3.0)的Alpha版本支持Windows窗体和WPF。但是,Visual Studio Designer(和Visual Studio)不支持Windows窗体和WPF的.NET Core。是否可以使Visual Studio Designer(和Visual Studio)与.NET Core 3.0一起使用,或者可以与.NET Core 3一起使用的任何其他设计器或IDE?

我问这个问题的主要原因是因为(对我和其他人)使用代码编辑器(如VS Code和Atom)是如此困难。

我希望这是一个好问题。

8 个答案:

答案 0 :(得分:8)

Visual Form Designer尚不适用于Windows Forms和WPF .NET CORE项目。但是关于其路线图,设计师将作为Visual Studio 2019更新的一部分提供。

有关更多信息,请参见WinFormsWPF .NET CORE存储库。

解决方法-将Windows Forms Designer用于.NET CORE WinForms项目

目前,有workaround用于将Classic .NET Windows Forms Designer用于.NET CORE Windows Forms项目。

解决方法取决于在相同的解决方案中具有相同的根名称空间的Classic WinForms应用程序和CORE WinForms应用程序。

要添加新的可设计项目,每次要添加新项目时,都需要将其添加到经典项目中,然后将3个生成的文件(.cs,.designer.cs,.resx)移至CORE应用,然后将它们添加为经典应用程序的链接。

要进行编辑,由于它们可以作为经典应用程序中的链接使用,因此请在经典应用程序的设计器中对其进行编辑。所有更改都对CORE应用可见。

准备解决方案以将Windows Forms Designer用于.NET Core Winforms应用

  1. 创建Windows Forms .NET Core应用程序。 (See the steps and requirements。)
  2. 在Visual Studio中打开项目,然后保存包含解决方案的项目。
  3. 右键单击解决方案并添加新项目→从模板中选择Windows Forms项目,并将其命名为与Core app +“ .Designer”相同的名称,然后单击确定。
  4. 在Classic框架项目的属性中,将默认名称空间设置为与Core应用程序相同的默认名称空间。
  5. 擦除两个项目中的所有现有文件并保存更改。

添加表单或用户控件

每次要添加新表单或用户控件时,都需要执行以下步骤:

  1. 在经典框架项目中,添加新项
  2. 选择Windows窗体或用户控件
  3. 在desginer中进行一些更改,例如调整表单大小,以便生成resx文件并保存。
  4. 在解决方案资源管理器中,右键单击表单,然后选择“剪切”。
  5. 在核心应用中,粘贴所有项目。(窗体,设计器,resx)。
  6. 在经典应用中,右键单击并选择添加现有项。
  7. 浏览打开的对话框到核心应用文件夹,然后选择添加的3个文件,然后单击“添加”按钮附近的下拉菜单,然后选择“ 添加为链接”
  8. 编译解决方案。
  9. 使用Mad Kristensen的File Nesting Extension或编辑项目文件来租用经典应用中的文件。

现在,每当需要在Core Form或UserControl文件之一上使用Designer时,只需使用Classic Windows Forms Designer在Classic Framework项目中打开链接的文件即可。

答案 1 :(得分:2)

如果要使用Visual Studio 2019查看WPF XAML的预览,只需尝试使用此扩展名https://marketplace.visualstudio.com/items?itemName=GiessweinApps.FAMLDesigner

它支持.NET Core和.NET Framework: Preview

答案 2 :(得分:1)

尽管官方 WPF GitHub Repository 指出:

  

注意:WPF视觉设计器尚不可用,它将成为Visual Studio 2019更新的一部分。

在其中使用视觉设计器的example video

希望有帮助!

答案 3 :(得分:1)

对于WinForms项目,您可以参考此视频

How to fix WinForms Designer not support .net core 3.0 visual studio 2019

由于该视频提供了我们所需的更多详细信息,因此我们可以逐步进行。它也基于Microsoft官方github项目dotnet/winforms

dotnet/winforms - Using the Classic WinForms Designer in WinForms Core

我制作的相关代码(VS项目)已经推送到github:

.netCore-WinForms_Designer


对于WPF项目,您可以使用XAML设计器,如下所示:

在WPF Core App中使用设计器的解决方法

参考:

dotnet/samples - WPF Hello World sample with linked files

安装vs 2019专业版/企业版

首先,您需要安装vs 2019 Professional / Enterprise版本。然后需要安装.net core 3.0 SDK。现在,您可以尝试创建.net核心WPF应用程序,

1555775855179

设置相关项目名称和存储路径后,将弹出:

img2-BravoYeung

在VS选项的.NET核心下选中“使用预览SDK”

设置完成后,重新启动vs即可生效。

使用VS内置模板,创建名为.net core的WPF项目“ CoreHiWPF”

1555775855179

1555775915106

在创建的解决方案下,使用VS内置模板创建.net框架类型的新WPF项目“ HiWPF”

1555775957478

1555775984667

现在该解决方案的文件结构如下:

1555776045894

更新.net核心WPF的程序集名称“ CoreHiWPF”,使两个项目的程序集名称相同

右键单击项目CoreHiWPF,选择Properties,然后将其Assembly Name更改为HiWPF

1555773128801

然后右键单击该项目,单击“编辑CoreHiWPF.csproj”。

1555773253120

添加如下代码:

1555773381960

  <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核心WPF项目CoreHiWPF被设置为启动项目

如果.net核心WPF项目CoreHiWPF已经突出显示,则可以忽略。或者,您需要选择项目CoreHiWPF,然后右键单击Set As Start up project

尝试XAML设计器

现在关闭所有打开的文件。单击项目MainWindow.xaml的文件HiWPF。然后,您现在可以在XAML设计器中看到空白的WPF窗口。

1555773860860

根据需要修改MainWindow.xaml文件和相关的.cs

然后,我在文件Grid的{​​{1}}中添加两行: -一行是MainWindow.xaml,支持换行 -另一行是一个Label按钮。

然后我将Exit事件添加到Click按钮,将Exit事件添加到Loaded

modify

代码更新完毕后,按Window运行,最终用户界面如下:

1555774408266

代码也已经推送到github:

.netCore-WPF_Designer

您可以直接克隆它来看看。

答案 4 :(得分:0)

Microsoft Visual Studio专业版2019 版本16.7.2 开箱即用。

答案 5 :(得分:0)

仅发现使用WinForms设计器打开文件的说明存在于 文件.csproj.user。

<ItemGroup>
    <Compile Update="Form1.cs">
        <SubType>Form</SubType>
    </Compile>
</ItemGroup>

因此,如果像我一样,您已.gitignore了此文件并进行了git clean,您将无法再使用Designer打开该文件。

答案 6 :(得分:0)

我删除了项目文件,并重新创建了项目以使其对我有用。新建->现有代码中的项目...

答案 7 :(得分:0)

如果缺少窗体设计器。尝试将另一个Windows窗体添加到您的项目。完成此操作后,其他Windows窗体的设计器就会出现。

如果您使用的是Visual Studio 2019,请确保获取包括Windows窗体设计器在内的最新更新。某些早期版本不包含它。