【译】Visual Studio 2019 中 WPF UWP 的 XAML 开发工具新特性

原文 | Dmitry

翻译 | 郑子铭

自Visual Studio 2019推出以来,我们为使用WPF或UWP桌面应用程序的XAML开发人员发布了许多新功能。在本周的 Visual Studio 2019 版本 16.4 和 16.5 Preview 1中,我们希望借此机会回顾一下全年的新变化。如果您错过了我们以前的版本,或者只是没有机会赶上,那么此博客文章将是您可以看到我们在整个2019年所做的每项重大改进的地方。

XAML实时调试工具:

XAML C# Edit & Continue 现在被称为 XAML Hot Reload (v16.2):

现在将 WPF / UWP 的 XAML C# Edit & Continue 称为 XAML Hot Reload,此新名称旨在更好地与该功能的实际工作方式保持一致(因为进行XAML编辑后无需暂停)并与 Xamarin.Forms 中的相似功能匹配。

XAML Hot Reload 可用/不可用 (v16.2):

应用内工具栏已更新,以指示 XAML Hot Reload 是否可用,并链接到相关文档。在此改进之前,如果不先尝试使用该功能,客户将无法知道 XAML Hot Reload 是否正在工作,这会引起混乱。

应用内工具栏现已主题化 (v16.2):

现在,根据Visual Studio选定的主题颜色设置应用内工具栏的样式。

应用内工具栏现在的主题(v16.2)

应用内工具栏元素选择行为更改:

我们更新了应用程序内工具栏功能“启用选择”的行为,用于在运行的应用程序中选择元素。进行此更改后,选择器将在选择第一个元素后停止选择元素。这使其与类似的工具(例如F12浏览器工具)保持一致,并且基于客户的反馈。

XAML Hot Reload 现在支持 x:bind(UWP)– v16.0:

XAML Hot Reload(以前称为“ XAML Edit & Continue ”)现在支持编辑使用 x:bind 创建的数据绑定,以绑定包含公共属性,元素名称,索引属性路径(集合),附加属性和强制转换属性的路径。不支持其他更改。最低和最高版本针对 Windows 10 SDK 版本1809(内部版本10.0.17763)或更高版本的任何应用程序均可使用此增强功能。

为 WPF 资源字典更改(v16.3)添加了 XAML Hot Reload 支持:

XAML Hot Reload 现在支持更新 WPF 资源字典以在应用程序中进行实时更新。以前,此功能仅适用于通用 Windows 平台(UWP),但现在支持 WPF .NET Framework,WPF .NET Core 和 UWP 应用程序。支持的操作包括添加新的“资源”部分定义以及添加,删除和更新资源的新/现有部分。

实时可视化树中的Just My XAML:

实时可视化树是一项功能,当 UWP 和 WPF 开发人员在调试模式下运行其应用程序时,它们是可用的,并且是与 XAML Hot Reload 相关的实时编辑工具的一部分。以前,该功能会显示附件中正在运行的应用程序的完整实时可视化树,而无法通过过滤器仅查看您在应用程序中编写的 XAML。这带来了非常嘈杂的体验,并且根据客户的反馈,我们添加了一个名为“ Just My XAML”的新默认值,该默认值将树限制为仅在您的应用程序中编写的控件。虽然这是新的默认设置,但仍然可以通过实时可视化树本身内的按钮或通过新设置(位于:选项>调试>常规>启用我的XAML)返回到以前的行为。

实时可视化树中的Just My XAML

可移动的应用内工具栏(v16.3):

应用程序内工具栏已得到增强,可在正在运行的 WPF / UWP 应用程序中移动,从而使开发人员能够在应用程序中向左或向右拖动它以解除阻止应用程序 UI。请注意,工具栏移动到的位置不会在会话之间存储,并且在您的应用重新启动时会返回到默认位置。

可移动的应用内工具栏(v16.3)

XAML绑定失败面板(独立的 VSIX 早期 alpha 预览):

为了在开发人员的应用程序中发生数据绑定失败时为开发人员提供帮助,我们在开发中提供了一项新功能,该功能为 Visual Studio 带来了专门的 XAML 绑定失败面板。尽管此功能最终将对所有 XAML 开发人员(WPF,UWP和Xamarin.Forms)都起作用,但新面板将使为那些构建WPF应用程序的客户更容易发现绑定失败。

XAML绑定失败面板(独立的 VSIX 早期 alpha 预览)

此功能意味着开发人员将不再需要使用输出窗口来检测绑定失败并使新开发者更容易发现它们。

此功能仍处于开发的早期阶段,Visual Studio 中未包含该功能,如果您希望立即开始对其进行测试,则可以通过下载我们的 alpha VSIX 来进行。

XAML设计器

WPF Designer 现在完全适用于 WPF .NET Core 项目(v16.3):

现在,所有客户都可以普遍使用 (GA)WPF .NET Core 应用程序的 XAML 设计器,而无需预览功能标志。WPF .NET Core 应用程序的 XAML 设计器在某些行为和功能上与 WPF .NET Framework Designer 略有不同,请注意,这是设计使然。鉴于两者之间的差异,我们希望鼓励客户报告使用 Visual Studio 反馈功能可能遇到的任何问题或限制。

WPF Designer 现在完全适用于 WPF .NET Core 项目(v16.3)

XAML 设计器的缩放/位置现在默认为全部适合(v16.4):

根据客户的反馈,我们重新评估了打开 XAML 窗口/页面/控件/等时发生的默认 XAML 设计器缩放行为。以前的经验丰富的用户在 Visual Studio 会话中存储了每个文件的缩放级别和位置,这在客户经过一段时间后返回文件时引起混乱。从此版本开始,我们将仅在活动会话的持续时间内存储缩放级别和位置,并在 Visual Studio 重新启动后恢复为“完全适合”默认值。

创建数据绑定对话框(v16.4):

通过 XAML 设计器和属性浏览器的右键单击,Visual Studio有一个可供 WPF .NET Framework 开发人员使用的数据绑定对话框,并且以前也可供 UWP 开发人员使用此对话框。在此版本中,我们将这种经验带回 UWP 开发人员,并增加了对 WPF .NET Core 应用程序的支持。此功能仍在开发中,并将在将来继续改进,以恢复与 .NET Framework 对话框功能的功能奇偶性。

XAML设计器建议的操作(v16.5预览):

在此版本中,我们提供了一个名为“建议的操作”的新预览功能,当在 XAML 设计器中选择控件时,可以轻松访问常用属性。要使用此功能,请先通过“选项”>“预览功能”>“ XAML建议的操作”将其启用。启用后,请单击受支持的控件,然后使用灯泡展开并与“建议操作”用户界面进行交互。在此版本中,受支持的控件包括:边框,按钮,画布,复选框,组合框,网格,图像,标签,列表框,ListView,StackP anel,TextBlock,TextBox。在预览时,此功能也仅适用于 WPF .NET Core 应用程序,不支持扩展性,也不具有完整的功能。

XAML设计器建议的操作(v16.5预览)
(请注意,此功能正在积极开发中,在最终发布之前可能会发生重大变化,因此您的反馈至关重要,我们希望通过 Visual Studio 反馈工具来听取您的意见。)

XAML编辑器

XAML(v16.0)的智能感知支持:

IntelliCode 是一种AI辅助的 IntelliSense,适用于多种语言,可预测开发人员最可能使用的正确 API,而不仅仅是字母顺序的成员列表。IntelliCode 支持C#,C ++,XAML等语言。

#regions 智能感知(v16.4)的改进:

从 Visual Studio 2015 开始,WPF 和 UWP XAML 开发人员可以使用 #region 支持,Xamarin.Forms 最近也可以使用。在此版本中,我们已修复了 IntelliSense 错误,此修复程序中 #regions 现在将在您开始输入<!时正确显示。

XAML 智能感知(v16.4)中的代码段:

增强了 IntelliSense 的功能,以支持显示 XAML 代码段,这对于内置代码段和您手动添加的任何自定义代码段均适用。从此版本开始,我们还包括一些现成的 XAML 代码片段:#region,Column 定义,Row 定义,Setter和Tag。

弹出 XAML 编辑器作为与设计器(v16.4)分开的单独窗口:

现在,可以使用 XAML 选项卡旁边的新的 Popup XAML 按钮轻松地将 XAML 设计器及其基础 XAML 编辑器拆分为单独的窗口。单击后,XAML 设计器将最小化其附加的 XAML 选项卡,并仅针对 XAML 编辑器视图弹出一个新窗口。您可以将此新窗口移动到 Visual Studio 中的任何显示或选项卡组。请注意,仍然可以展开原始 XAML 视图,但是无论同一个文件的所有 XAML 视图将保持实时同步。

弹出 XAML 编辑器作为与设计器(v16.4)分开的单独窗口

显示引用程序集的资源(v16.4):

XAML IntelliSense 已更新为支持显示来自 WPF Framework 和 WPF .NET Core 项目的引用程序集中的 XAML 资源(当源不可用时)。

XAML Islands:

改进的 XAML孤岛 支持(v16.4):

我们增加了对 Windows 窗体和 WPF .NET Core 3 应用程序的 XAML孤岛 场景的支持,从而使向这些应用程序添加 UWP XAML 控件变得更加容易。通过这些改进,.NET Core 3 项目可以引用包含自定义 UWP XAML 控件的 UWP 项目。Windows 社区工具包 v6(Microsoft.Toolkit.Wpf.UI.XamlHost v6.0)中附带的 WindowsXamlHost 控件可以使用这些自定义控件。您还可以使用 Windows 应用程序打包项目为具有 Islands 的 .NET Core 3 生成 MSIX。要了解如何入门,请访问我们的文档。

资源和模板

合并资源字典:

现在,可以使用解决方案资源管理器提供的新功能,轻松地将 UWP / WPF 项目中的现有资源词典与任何有效的 XAML 文件合并。只需打开要在其中添加 merge 语句的 XAML 文件,然后找到要合并的文件,然后在解决方案资源管理器中右键单击该文件即可。在上下文菜单中,选择“将资源字典合并到活动窗口中”选项,该选项将添加带有路径的正确合并 XAML。

合并资源字典

“编辑模板”现在可与第三方控件中的控件一起使用:

即使“编辑模板”现在不是源代码解决方案的一部分,也可以创建控件模板的副本。进行此更改后,“编辑模板”功能现在将可用,并且可以像现在可用源的第一方元素一样使用。请注意,此功能适用于第三方控制库和没有源的第一方。

包装和签名

UWP应用(v16.3)的签名证书:

通过清单设计器恢复了创建和导入签名证书文件(.pfx)的功能。我们还引入了通过打包向导创建和导入签名证书的功能,以简化签名过程。
009
UWP应用(v16.3)的签名证书

相关新闻

最近,还有其他与桌面开发人员相关的公告,如果您错过了其中任何一项,请参阅以下综合列表:

Visual Studio App Center 现在支持 .NET 桌面应用程序

包括 WinForms,WPF 和 UWP。这包括由 .NET Framework 或 .NET Core 支持的应用程序,支持的功能包括部署,运行状况监视(崩溃报告)和实时洞察(自定义遥测)。有关详细信息,请查看他们最近的博客文章。

Windows 已宣布 WinUI 3

同时发布了 Alpha 版和长期路线图。使用 WinUI 3,开发人员将能够使用现代 XAML 的功能来构建由 .NET Core 或 C ++ 支持的桌面和 UWP 应用程序。要了解所有详细信息,请参阅其路线图。

Windows UI 库 2.3 现在可用

它将继续为UWP开发人员添加更多控件。有关所有详细信息,请参见其发行说明。

Ignite 2019 XAML 会议

现在可以免费观看点播视频,如果您今年错过了 Ignite,那么值得一试。

总结

这些功能只是我们一直在努力的一部分,还有许多仍在开发中,我们希望在准备就绪时与您分享更多信息。

目前,由于上述许多项目都是根据客户的意见创建的,因此请保持您的反馈意见,因为您的意见是我们改进Visual Studio的关键部分。

最后,您还可以在我们最新的 Visual Studio Toolbox 视频中看到上述功能的演示:https://youtu.be/yI9OyA4ZM2E

原文:https://devblogs.microsoft.com/visualstudio/whats-new-in-xaml-developer-tools-in-visual-studio-2019-for-wpf-uwp/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/312688.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我在外包公司做增删改查有前途么?

作者&#xff1a;邹溪源&#xff0c;长沙资深互联网从业者&#xff0c;架构师社区特邀嘉宾&#xff01;起因这是我无意中在筛选简历时&#xff0c;看到一位朋友发布的求职说明中&#xff0c;明确指出&#xff0c;外包勿扰&#xff0c;并给出了他做出这个决定的理由&#xff1a;…

[译]C#8.0中一个使接口更加灵活的新特性-默认接口实现

9月份的时候&#xff0c;微软宣布正式发布C#8.0&#xff0c;作为.NET Core 3.0发行版的一部分。C#8.0的新特性之一就是默认接口实现。在本文中&#xff0c;我们将一起来聊聊默认接口实现。众所周知&#xff0c;对现有应用程序的接口进行更改是一项很危险的操作。如果这个接口又…

鲲鹏来了,在EulerOS试用.NETCore-3.1

在EulerOS试用.NETCore-3.1前言EulerOS其实出来有一段时间了&#xff0c;一直在关注&#xff0c;单是仅仅也只是停留在观望的阶段&#xff0c;目前还没有接入的打算&#xff1b;正好看到园子里的兄弟分享了华为云免费试用的活动后&#xff0c;难捺激动的心情&#xff0c;我马上…

如何在ASP.NET Core 中快速构建PDF文档

比如我们需要ASP.NET Core 中需要通过PDF来进行某些简单的报表开发&#xff0c;随着这并不难&#xff0c;但还是会手忙脚乱的去搜索一些资料&#xff0c;那么恭喜您&#xff0c;这篇帖子会帮助到您&#xff0c;我们就不会再去浪费一些宝贵的时间。在本文中我们将要使用DinkToPD…

在VS2019发布独立程序与单一执行程序

背景随着.NET Core 3.1 LTS的发布&#xff0c;.NET Core 3.1 进入了3年的支持周期&#xff0c;在这期间使用.NET 的人数肯定会发生一个质的飞跃。01目标本次主要集中在使用.NET Core 3.1 WPF程序发布一个独立的单一执行程序。首先&#xff0c;新建一个wpf项目&#xff0c;名称为…

C#异步编程看这篇就够了

随着.NET Core的流行&#xff0c;相信你现在的代码中或多或少的会用到async以及await吧&#xff01;毕竟已成标配。那么我们为什么要用async以及await呢&#xff1f;其实这是微软团队为我们提供的一个语法糖&#xff0c;让我们不用996就可以轻松的编写异步代码&#xff0c;并无…

2019 AI Bootcamp·Guangzhou 参会日记

2019年的全球AI训练营在北京、上海、广州、杭州、宁波五个地方同时举办&#xff01;12月14日&#xff0c;微软全球AI Bootcamp活动再次驾临广州&#xff0c;本次会议结合 ML.NET 和基于 SciSharp 社区介绍最新的基于 .NET Core 人工智能技术&#xff0c;还有云端人工智能解决方…

AI Boot Camp 分享之 ML.NET 机器学习指南

今天在中国七城联动&#xff0c;全球134场的AI BootCamp胜利落幕&#xff0c;广州由卢建晖老师组织&#xff0c;我参与分享了一个主题《ML.NET 机器学习指南和Azure Kinect .NET SDK概要》&#xff0c;活动虽然只有短短的2天时间的宣传&#xff0c;报名70人&#xff0c;到场40多…

使用 Ocelot 匹配路由的方法匹配路由

使用 Ocelot 匹配路由的方法匹配路由Intro之前我们在 Ocelot 网关的基础上自定义了一个认证授权的 Ocelot 中间件&#xff0c;根据请求的路径和 Method 进行匹配&#xff0c;找到对应的权限配置&#xff0c;并判断是否可以拥有访问资源的角色&#xff0c;如果没有则返回 401/40…

【.NET Core 3.1】 策略授权中获取权限数据

▼更多精彩推荐&#xff0c;上午11点到达▼随着项目关注度渐渐升高&#xff0c;目前已经1.2k个star&#xff0c;我的内心反而更加的惶恐了起来&#xff0c;最近也是很有强迫症&#xff0c;只要有小伙伴反馈项目的问题&#xff0c;就很着急&#xff0c;哪怕一丁点的问题&#xf…

《Dotnet9》系列-开源C# Winform控件库1《HZHControls》强力推荐

大家好&#xff0c;我是Dotnet9小编&#xff0c;一个从事dotnet开发8年的程序员。我最近在写dotnet分享文章&#xff0c;希望能让更多人看到dotnet的发展&#xff0c;了解更多dotnet技术&#xff0c;帮助dotnet程序员应用dotnet技术更好的运用于工作和学习中去。文章阅读导航一…

不要叫我,我会叫你

之前看过前辈Artech关于控制反转的一篇文章&#xff0c;文章通俗易懂且言语精炼&#xff0c;写技术文章既是积累也是分享&#xff0c;既然是分享那么必须让读者能够明白到底讲解的什么&#xff0c;所以在这里我也挑战下自己&#xff0c;看看能不能将概念通过简洁代码和语言的形…

用.NET模拟天体运动

用.NET模拟天体运动这将是一篇罕见而偏极客的文章。我上大学时就见过一些模拟太阳系等天体运动的软件和网站&#xff0c;觉得非常酷炫&#xff0c;比如这个&#xff08;http://www.astronoo.com/en/articles/positions-of-the-planets.html&#xff09;&#xff1a; 其酷炫之处…

01 手把手带你构建大规模分布式服务--高并发、高可用架构系列,高质量原创好文!...

作者&#xff1a;丁浪&#xff0c;目前在创业公司担任高级技术架构师。曾就职于阿里巴巴大文娱和蚂蚁金服。具有丰富的稳定性保障&#xff0c;全链路性能优化的经验。架构师社区特邀嘉宾&#xff01;阅读本&#xff08;系列&#xff09;文章&#xff0c;你将会收获&#xff1a;…

如何正确的探索 Microsoft Ignite The Tour

Microsoft Ignite The Tour 是一年一度微软为全球开发者、IT专家、安全专家以及数据专家提供的为期两天&#xff0c;包含众多核心产品的实践性技术培训。2019.12.10-2019.12.11 已经在北京国家会议中心胜利闭幕&#xff0c;我作为一名Speaker 参与了两门课程的分享&#xff0c;…

回顾这一年,我沉默良久

今天是一个特殊的日子&#xff0c;因为还有一周就2024了。 回忆 我骑着我心爱的小电驴慢悠悠的走在下班的路上&#xff0c;看着万家灯火&#xff0c;匆匆而过的行人和那开着三轮车的摊贩们与城管斗智斗勇。 我陷入了回忆&#xff1f; 回忆着今年的进程&#xff0c;先是裁员…

使用ASP.NET Core 3.x 构建 RESTful API - 4.1 面向外部的Model

Entity Framework Core 使用的 Entity Model 是用来表示数据库里面的记录的。 而面向外部的 model 则表示了要传输的东西。这类 model 有时候叫做 Dto&#xff0c;有时候叫做 ViewModel。 举一个例子&#xff0c;人员的Entity Model如下&#xff1a; 最后一个字段表示人员的出生…

特意向大家推荐.NET技术圈一些优秀开发者的公众号

在互联网技术飞速发展的今天&#xff0c;各种技术席卷而来&#xff0c;总是让人感觉压力山大。作为.NET开发者&#xff0c;我们该如何刷新自己&#xff0c;实现价值的提升呢&#xff1f;2019年.NET中国开发者峰会之后&#xff0c;我们汇总了.NET技术圈一些优秀开发者的公众号&a…

ASP.NET Core on K8S深入学习(11)K8S网络知多少

Photo &#xff1a;Kubernetes文 | Edison Zhou本文已加入《.NET Core on K8S 学习与实践系列文章索引目录》&#xff0c;点击查看阅读更多容器化相关文章&#xff0c;希望对你有所帮助&#xff01;Kubernetes网络模型我们都知道Kubernetes作为容器编排引擎&#xff0c;它有一个…

Amazon、Linux基金会开发边缘网络交换器操作系统

Amazon、Linux基金会和5家网络业者上周宣布边缘网络交换器操作系统项目DENT&#xff0c;可能冲击开发专属操作系统的网络晶片及设备业者。DENT希望集结网络设备制造商&#xff0c;系统整合商及晶片厂商&#xff0c;为分散式厂区、远端办公室、分公司及零售业开发解构式网络交换…