.NET Core 3.0已经发布了,除了一大堆令人激动的功能以外,也增加了对WPF的正式支持, 那么WPF在.NET Core 3.0下的开发体验如何呢?

本文利用了Stylet框架开发.NET Core 3.0上的WPF应用程序.关于Stylet框架, 可能大家比较陌生, 它是一个轻量级(但是非常优秀!)的WPF框架, 最近也更新了对.NET Core 3.0的支持, 关于Stylet的介绍可以浏览我之前的一篇博文: 

OK. 感觉不错!

增加登录功能

虽然是个演示项目,但是我们还是需要登录界面的:), Stylet中一个界面至少需要两部分: "ViewModel"和"View". 我们来分别实现它们.

ViewModel

在Pages文件夹下创建一个名为LoginViewModel.cs的类,用来实现登录的界面逻辑.并输入以下代码:

public class LoginViewModel : Screen {     /// <summary>     /// 用户名     /// </summary>     public string UserName { get; set; }       /// <summary>     /// 密码     /// </summary>     public string Password { get; set; }      /// <summary>     /// 登录     /// </summary>     public void Login()     {         // 在这实现登录逻辑     }      /// <summary>     /// 登录的防护属性     /// </summary>     public bool CanLogin => !string.IsNullOrEmpty(UserName) &&                             !string.IsNullOrEmpty(Password); }

启用可空引用类型

下面我们试用一下C#8中新增加的特性: 可空引用类型.

使用可空引用类型可在编译时就检查潜在的空引用问题.关于可空引用类型,请参考我之前翻译的一篇文章初试C# 8.0中"可空的引用类型"章节.

右键点击StyletBookStore工程,选择"Edit Project File":

在打开的StyletBookStore.csproj文件中增加一行配置: