不知不觉,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 工具的改进相关推荐

  1. visual studio 2019编译Windows Terminal工具的问题

    window 1903更新后,我特意玩了下微软的开源项目terminal,一阵操作猛如虎.特意下载了visual studio 2019,直接编译成一个命令行工具. 当然这个不是最终的效果.界面编译报 ...

  2. Microsoft 宣布 Visual Studio 2019 发布日期

    微软发布了 Visual Studio 2019 的发布日期,在 Visual Studio 的更新中,微软透露,Visual Studio 2019 将于4月2日发布,并且为用户提供发布直播. Vi ...

  3. Visual Studio 2019 (VS2019)安装Spy++工具

    Visual Studio 2019 ()VS2019)安装Spy++工具 Microsoft Spy++是一个非常好的查看Windows操作系统的窗口.消息.进程.线程信息的工具,简单易用,功能强大 ...

  4. Visual Studio 2019 v16.6 和 v16.7 Preview 1 发布

    微软发布了 Visual Studio 2019 v16.6 稳定版,以及 v16.7 的首个预览版本. Visual Studio 2019 version 16.6 版本控制:改进的 Git 工具 ...

  5. 微軟专为Visual Studio 2019设计出一套容器工具擴充套件

    微軟為Visual Studio 2019釋出容器工具擴充套件,讓開發者直接在IDE中,建構以及診斷容器化應用程式.雖然開發者也可以使用Docker命令列工具進行操作,但是容器工具擴充套件提供圖形化介 ...

  6. Visual Studio 2019 发行说明

    原文:https://docs.microsoft.com/zh-cn/visualstudio/releases/2019/release-notes 单击按钮即可下载最新版 Visual Stud ...

  7. 宇宙第一 IDE Visual Studio 2019 正式发布

    如约而至,微软已于今天推出 Visual Studio 2019 正式版,一同发布的还有 Visual Studio 2019 for Mac. Visual Studio 2019 下载地址:htt ...

  8. Visual Studio 2019 正式发布

    百度智能云 云生态狂欢季 热门云产品1折起>>>   如约而至,微软已于今天推出 Visual Studio 2019 正式版,一同发布的还有 Visual Studio 2019 ...

  9. views 多个文件夹 netcore_Visual Studio 2019发布.NET Core项目部署或者独立运行的方法...

    Visual Studio 2019发布.NET Core项目部署或者独立运行的方法 Visual Studio 2019是一款专为程序开发人员设计,支持 Windows 和 Mac系统,适用范围广, ...

最新文章

  1. noj数据结构稀疏矩阵的加法十字链表_一个算法毁了一款好游戏?算法和数据结构到底有多重要?...
  2. CCBPM工作流引擎的消息机制与设计
  3. Mysql (一)Mysql 数据库增删改查
  4. oracle 回闪技术恢复误删数据
  5. 我的一个特点:数据处理能力还可以,但是数据规律记忆能力有限
  6. JZOJ 5473. 【NOIP2017提高组正式赛】小凯的疑惑
  7. .NET Core中使用Razor模板引擎
  8. 怎么用PHP建立购物网站,如何使用PHP建设一个购物网站
  9. 帆软《商业智能》书籍首发,国产BI行业独家,福利发售!
  10. window.onload与document.ready的区别
  11. ig 焊接机器人_发那科机器人焊接应用的IO配置(总线型)
  12. laravel 判断字符串包含_laravel 字符串函数
  13. python代码怎么运行_如何让Python代码加速运行?
  14. 【教程分享】2018最新pHp视频教程
  15. 泰克示波器时频多域信号频谱谐波分析
  16. 浅谈智能卡技术在数字电视小额支付系统中的应用
  17. Android 地图跳转到百度、高德、腾讯地图导航
  18. SQLServer日期相关函数 GETDATE、DATEADD、DATEDIFF、DATEPART、CONVERT、ISNULL
  19. 如何在功能、特点、价格和性能方面选择PDF编辑器?
  20. android 桌面动画,Android 如何在Launcher的桌面滑动时添加动画效果? M

热门文章

  1. IOS - UTF-8转码问题
  2. PAT-乙级-1042 字符统计
  3. 数据结构小总结(成都磨子桥技工学校数据结构前12题)
  4. Git删除不存在对应远程分支的本地分支
  5. Membership学习记录
  6. C#——一个简单的文件管理器
  7. 数据挖掘 pandas基础入门之操作
  8. java.lang.NoSuchFieldError: EMPTY_ORDERED_ITERATOR起因及解决办法
  9. 1、Locust压力测试环境搭建
  10. win 7 旗舰版镜像 注入USB3.0 驱动