不知不觉,Visual Studio 2019 已经出到 16.8 和 16.9 Preview 了。虽然每次更新都林林总总地一大堆新功能和改进,但关于 XAML 的内容老是,always,每次都只有一点点。其实 Xamarin 相关的内容有在使劲地更新,不过和我作的 WPF/UWP 关系又不大。总算是聚沙成塔,随着 Visual Studio 持续更新,如今 XAML 编辑器的使用体验已经比去年有了很大的改善。这篇文章就来总结下 Visual Studio 2019 发布后 XAML 工具的各个主要改变。html
如今,可使用 XAML 选项卡旁边新的"弹出 XAML"按钮轻松地将 XAML 设计器及其基础 XAML 编辑器拆分为单独的窗口。这时 XAML 设计器将把本来的 XAML 编辑器最小化,并在新的窗口打开一个 XAML 编辑器(这两个 XAML 编辑器将保持实时同步)。虽然是一个很简单的功能,但这个功能对同时使用两个屏幕的开发者十分友好,由于如今终于能够一个屏幕放设计视图一个屏幕放 XAML 编辑器。真不能想象竟然等了这么多年才等来这个功能。app
IntelliSense 已通过加强,以支持显示 XAML 代码片断,这将适用于内置代码片断以及你手动添加的任何自定义代码片断。这还挺好用的,一些很复杂的绑定如今也能够经过定义代码段来简化了。编辑器
可并非全部 IntelliSense 的改进都是好事。写了十几年 XAML,个人手指都变成 XAML 的形状了,如今忽然以为很不适应。例以下面这个例子,我老是习惯盲打输入 “'<'Gr空格”来建立一个 Grid
标签,如今被插进来的推荐项打乱了个人习惯。总的来讲改进程度和 C# 编辑器仍是差了一大截。ide
如今能够看到 XAML 所设置的颜色了,没必要再依赖第三方插件,这对常常须要设计 UI 的开发人员是一个很大的改进。工具
d: 前缀用于设置设计时的属性值,它只影响设计视图,不会编译到正在运行的应用中。在之前,d: 前缀只支持有限几个功能,例如 d:DataContext
。如今全部内置控件的每个属性均可以用 d: 前缀设置(未来还可能增长对第三方控件的支持)。插件
之前意义不明的“编辑并继续”如今改名为简单直接的“热重载”。热重载、实时可视化树和实时属性资源管器是 WPF 开发者不会错过的重要功能,Visual Studio 2019 一直有逐渐改善它们的体验,如今这些功能已经支持 WPF、UWP、Xamarin、WInUI 3 等多个平台。在 Visual Studio 2019 中比较显著的改善是实时可视化树中的“仅个人 XAML”。XAML 的可视化树可能很复杂,很难定位到出问题的 XAML(一般来讲,出问题的就是本身写的 XAML)。如今能够经过选项 > 调试 > 热重载>仅在实时可视化树启用“仅限个人 XAML”
设置能够选择是否显示完整的可视化树。设计
另外如今 Visual Studio 能够经过调试>附加到进程
调试其它程序的实时可视化树和实时属性资源管理器,不过我不记得这是否是 2019 才有的新功能。3d
其它 UI 上的改善都很明显,这里不着重提出。调试
即便经验丰富到头发掉光,XAML 的绑定仍是和有可能失败。通常来讲绑定失败并不会报错,因此开发者很难会注意到隐藏的绑定失败,除非主动查看“输出”窗口的内容。这种状况开发者极可能会忽略这些失败,直到更严重的灾难发生。如今 Visual Studio 新增了 XAML 数据绑定故障检测和诊断功能,若是在调试时遇到绑定失败,In-app toolbar 会出一个红色的图标,点击后能够打开 “XAML 绑定失败”窗口查看详细信息。code
最后一个是 XAML 建议的操做窗口,在 XAML 设计器中选中某个元素后,使用此功能能够轻松访问这个元素的主要属性。这个功能有点微妙,一来我还没用惯,而来它支持的 UI 元素也很少(对 WPF 来讲也就十几个)因此它的可用性大打折扣。
Visual Studio 将会持续改善,从它路线图来看,XAML 的相关内容真的处于“还没有成功,仍需努力”的状态,能够期待未来 XAML 的开发体验会更上一层楼(但是彻底没提到可怜的 Blend)。
Visual Studio 2019 当前发行说明:
https://docs.microsoft.com/zh-cn/visualstudio/releases/2019/release-notes
Visual Studio 2019 预览发行说明:
https://docs.microsoft.com/zh-cn/visualstudio/releases/2019/release-notes-preview
Visual Studio 2019 开发人员社区:
https://developercommunity.visualstudio.com/topics/visual+studio+2019.html
Visual Studio 发行节奏:
https://docs.microsoft.com/zh-cn/visualstudio/productinfo/release-rhythm
Visual Studio Roadmap:
https://docs.microsoft.com/zh-cn/visualstudio/productinfo/vs-roadmap
DevBlogs - Microsoft Developer Blogs:
https://devblogs.microsoft.com