总结 Visual Studio 2019 发布以来 XAML 工具的改进
不知不觉,Visual Studio 2019 已经出到 16.8 和 16.9 Preview 了。虽然每次更新都林林总总地一大堆新功能和改进,但关于 XAML 的内容总是,always,每次都只有一点点。其实 Xamarin 相关的内容有在使劲地更新,不过和我做的 WPF/UWP 关系又不大。总算是积少成多,随着 Visual Studio 持续更新,现在 XAML 编辑器的使用体验已经比去年有了很大的改善。这篇文章就来总结下 Visual Studio 2019 发布后 XAML 工具的各个主要改变。
1.弹出 XAML 编辑器作为设计器的单独窗口

现在,可以使用 XAML 选项卡旁边新的"弹出 XAML"按钮轻松地将 XAML 设计器及其基础 XAML 编辑器拆分为单独的窗口。这时 XAML 设计器将把原本的 XAML 编辑器最小化,并在新的窗口打开一个 XAML 编辑器(这两个 XAML 编辑器将保持实时同步)。虽然是一个很简单的功能,但这个功能对同时使用两个屏幕的开发者十分友好,因为现在终于可以一个屏幕放设计视图一个屏幕放 XAML 编辑器。真不能想象居然等了这么多年才等来这个功能。
2. XAML IntelliSense 改进,以及支持代码段
IntelliSense 已经过增强,以支持显示 XAML 代码片段,这将适用于内置代码片段以及你手动添加的任何自定义代码片段。这还挺好用的,一些很复杂的绑定现在也可以通过定义代码段来简化了。

可并不是所有 IntelliSense 的改进都是好事。写了十几年 XAML,我的手指都变成 XAML 的形状了,现在突然觉得很不适应。例如下面这个例子,我总是习惯盲打输入 “<Gr空格”来创建一个 Grid 标签,现在被插进来的推荐项打乱了我的习惯。总的来说改进程度和 C# 编辑器还是查了一大截。

3. 颜色可视化工具
现在可以看到 XAML 所设置的颜色了,不必再依赖第三方插件,这对经常需要设计 UI 的开发人员是一个很大的改进。

4. 扩展了对 WPF 和 UWP 的设计时数据支持
d: 前缀用于设置设计时的属性值,它只影响设计视图,不会编译到正在运行的应用中。在以前,d: 前缀只支持有限几个功能,例如 d:DataContext。现在所有内置控件的每一个属性都可以用 d: 前缀设置(将来还可能增加对第三杠控件的支持)。

5. XAML 热重载/实时可视化树/实时属性资源管器
以前意义不明的“编辑并继续”现在更名为简单直接的“热重载”。热重载、实时可视化树和实时属性资源管器是 WPF 开发者不会错过的重要功能,Visual Studio 2019 一直有逐渐改善它们的体验,现在这些功能已经支持 WPF、UWP、Xamarin、WInUI 3 等多个平台。在 Visual Studio 2019 中比较显著的改善是实时可视化树中的“仅我的 XAML”。XAML 的可视化树可能很复杂,很难定位到出问题的 XAML(通常来说,出问题的就是自己写的 XAML)。现在可以通过选项 > 调试 > 热重载>仅在实时可视化树启用“仅限我的 XAML”设置可以选择是否显示完整的可视化树。

另外现在 Visual Studio 可以通过调试>附加到进程调试其它程序的实时可视化树和实时属性资源管理器,不过我不记得这是不是 2019 才有的新功能。
其它 UI 上的改善都很明显,这里不着重提出。
6 .XAML 绑定失败诊断
即使经验丰富到头发掉光,XAML 的绑定还是和有可能失败。一般来说绑定失败并不会报错,所以开发者很难会注意到隐藏的绑定失败,除非主动查看“输出”窗口的内容。这种情况开发者很可能会忽略这些失败,直到更严重的灾难发生。现在 Visual Studio 新增了 XAML 数据绑定故障检测和诊断功能,如果在调试时遇到绑定失败,In-app toolbar 会出一个红色的图标,点击后可以打开 “XAML 绑定失败”窗口查看详细信息。


7. XAML 设计器建议的操作
最后一个是 XAML 建议的操作窗口,在 XAML 设计器中选中某个元素后,使用此功能可以轻松访问这个元素的主要属性。这个功能有点微妙,一来我还没用惯,而来它支持的 UI 元素也不多(对 WPF 来说也就十几个)所以它的可用性大打折扣。

8. 最后

Visual Studio 将会持续改善,从它路线图来看,XAML 的相关内容真的处于“尚未成功,仍需努力”的状态,可以期待将来 XAML 的开发体验会更上一层楼(可是完全没提到可怜的 Blend)。
9. 参考
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
总结 Visual Studio 2019 发布以来 XAML 工具的改进的更多相关文章
- Visual Studio 2019 发布活动 - 2019 年 4 月 2 日
Visual Studio 2019 发布活动 2019 年 4 月 2 日,星期二 | 上午 9:00 (PT) 围观: https://visualstudio.microsoft.com/zh- ...
- Visual Studio 2019 XAML Hot Reload功能介绍
Visual Studio 2019提供了XAML Hot Reload功能,这个功能可以让WPF程序运行以后仍然可以修改XAML代码,并实时显示. XAML Hot Reload功能在Blend F ...
- Visual Studio 2019 正式发布
原文链接: https://www.oschina.net/news/105629/vs2019-general-availability 如约而至,微软已于今天推出 Visual Studio 20 ...
- 【广州.NET社区推荐】【译】Visual Studio 2019 中 WPF & UWP 的 XAML 开发工具新特性
原文 | Dmitry 翻译 | 郑子铭 自Visual Studio 2019推出以来,我们为使用WPF或UWP桌面应用程序的XAML开发人员发布了许多新功能.在本周的 Visual Studio ...
- 【译】Visual Studio 2019 中 WPF & UWP 的 XAML 开发工具新特性
原文 | Dmitry 翻译 | 郑子铭 自Visual Studio 2019推出以来,我们为使用WPF或UWP桌面应用程序的XAML开发人员发布了许多新功能.在本周的 Visual Studio ...
- [翻译] Visual Studio 2019 RC版发布
[翻译] Visual Studio 2019 RC版发布 原文: Visual Studio 2019 Release Candidate (RC) now available 今天,我们将分享 V ...
- Visual Studio 2019 使用 Web Deploy 发布远程站点到IIS服务器
Visual Studio 2019 使用 Web Deploy 发布远程站点到IIS服务器的方式 在开发完项目之后,我们需要把开发的项目发布到指定的服务器上,有两种方式,如下 1.把项目发布成文件系 ...
- 强大的VS插件CodeRush发布v19.1.4|支持Visual Studio 2019
CodeRush是一个强大的Visual Studio .NET 插件,它利用整合技术,通过促进开发者和团队效率来提升开发者体验. [CodeRush for Visual Studio v19.1. ...
- visual studio 2019工具里添加开发中命令提示符的方法
最新新装了visual studio 2019,发现默认的没有开发者命令提示符 现将添加步骤描述如下: 从VS2019菜单选择"Tools",然后选择"外部工具" ...
随机推荐
- BUUCTF 不一样的flag writeup
感谢BUUCTF提供的学习平台 https://buuoj.cn 题目:不一样的flag 工具:x64dbg 这是一道内存的迷宫题,迷宫是402000处的字符串 根据经验,这应该(a行*b列)的字符, ...
- 怎么让我们的mac运行得更加流畅?让我们得工作事半功倍!
古语云:"工欲善其事,必先利其器."因此,一个运行流畅的Mac更能使我们的工作事半功倍.但又是什么导致电脑的运行不流畅呢? 其实这大多还是缓存垃圾过多.内存不足的原因.尝试安装了许 ...
- 思维导图软件MindManager新手入门教程
MindManager是一款创造.管理和交流思想的思维导图软件,其直观清晰的可视化界面和强大的功能可以快速捕捉.组织和共享思维.想法.资源和项目进程等等.MindManager新手入门教程专为新手用户 ...
- 10、Spring Boot分布式
1.分布式简介 2.Zookeeper和Dubbo 3.zookeeper (1).zookeeper安装 官方文档:https://hub.docker.com/_/zookeeper?tab= ...
- Crossing River 题解(贪心)
题目链接 题目大意 t组数据(t<=20) 给你n个人(n<=1000)过河,每个人都有权值,一条船,每次船最多运2个人,每次的花费为两个人的较大花费 求所有人都过河需要的最小花费 题目思 ...
- EXCEL发送为只读打开
(1)进入文件夹: C:\Users\xxx\AppData\Roaming\Microsoft\Windows\SendTo (2)新建快捷方式 (3)输入: "C:\Program Fi ...
- 精尽MyBatis源码分析 - Spring-Boot-Starter 源码分析
该系列文档是本人在学习 Mybatis 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释(Mybatis源码分析 GitHub 地址.Mybatis-Spring 源码分析 GitHub ...
- Kafka源码环境搭建
github地址:https://github.com/apache/kafka clone下来之后可以看到这样的项目结构: 文件目录说明. 目录 描述 bin Windows 和 Linux 下 K ...
- Java进阶专题(十八) 系统缓存架构设计 (下)
前言 上章节介绍了Redis相关知识,了解了Redis的高可用,高性能的原因.很多人认为提到缓存,就局限于Redis,其实缓存的应用不仅仅在于Redis的使用,比如还有Nginx缓存,缓存队列等等.这 ...
- C++的编程指南
序言:每天更新C++的内容 一.文件结构 每个C++/C程序通常分为两个文件.一个文件用于保存程序的声明(declaration),称为头文件.另一个文件用于保存程序的实现(implementatio ...