2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Blend 与 Visual Studio 2015 中的 WPF 工具

  • 2015-04-28
  • 本文字数:1432 字

    阅读完需:约 5 分钟

长期以来人们一直存有一个疑问,是否应该将 Blend 的功能整合到 Visual Studio 中去?目前的看法认为还是让两个工具保持独立的方式更好,让其中之一专注于 UI 设计任务,而另一个则专注于应用程序的开发。不过这并不意味着不能对这两者加以改善。

Blend 2015

首先,新版 Blend 将引入某些 Visual Studio 中的特性,例如解决方案管理器和代码编辑器。这些 VS 的特性已经经过了时间的检验,因此没有理由在 Blend 中另行开发一套独有的方案。

在引入了 Visual Studio 的代码编辑器之后,Blend 也能够使用诸如查看定义(Peek Definition)弹出框等特性了。在 XAML 中,可以通过这一特性查找定义在后台代码文件中的事件处理器。

与 Visual Studio 类似,Blend 也能够选择一种“dark 主题”,以此减少 IDE 本身带来的视觉反差。目前的计划是让这一主题比 Visual Studio 中的 dark 主题显得更暗,以此强制营造出一种无视觉反差、以设计为中心的工作氛围。

现如今,如果你在 Visual Studio 中进行了某个改动,Blend 将会显示一条提示信息,询问你是否重新加载受影响的文件。在 Blend 2015 中,则可以选择永久性地忽略这一提示。这一点本身看起来只是个很小的变化,但这种频繁的扰乱会对使用者的精神与生产力造成严重的影响。

可视树的调试

Blend 与 Visual Studio 都将支持对可视树进行调试,而目前只能通过第三方产品,例如 Snoop XAML Spy 实现这一功能。在应用程序运行时,你将通过某个树型视图看到当前活动窗口上的所有元素。这是一个自动更新的视图,你无需暂停应用程序或点击某个刷新按钮,就能够看到当前的可视树。

通过某个选择工具,你能够指出应用程序中的某个元素,并在 IDE 中自动选中它。在通过树型图或可视化选择工具选中某个元素之后,你就能够编辑该元素的属性,就像你在查看窗口中编辑某个对象的值一样。

作为.NET 4.6 中特性的一部分,现在使用者能够在 XAML 中追踪行号了。在树型图中选中某个元素之后,可以直接显示出定义了该元素的原始文件,这让你能够轻易地找到需要进行修改的代码。

Visual Studio 编辑体验

正如其名称所暗示的一样,Visual Studio 此前主要专注于可视化 UI 的设计。在 WinForms 和 Web Forms 的时代,这种想法可以理解,因为这两种设计都强调了一种拖放式风格的体验。但在使用 XAML 时,开发者倾向于仅仅使用原始的 XAML 代码进行工作,偶尔当他们需要使用可视化设计的时候,他们会切换到 Blend。

Visual Studio 2015 能够实现这种工作流,它允许开发者完全关闭 WPF/XAML 相关的可视化编辑组件。在设计器关闭之后,设计 /XAML 标签也会消失、工具箱中不会出现控件、设计时面板也不会被加载。开发者将面对一种专注于纯代码的体验,这正是他们所期望的。

不过,这是一个可选项,开发者如果喜欢使用 Visual Studio 中的可视化设计器,他仍然可以选择继续这种体验。

XAML 时间线工具

时间线工具是一种资源监视器,它能够告诉你应用程序的运行过程中发生了哪些事。这个报告中的一个关键部分是 UI 线程的使用情况,它能够告诉你 UI 线程何时被使用,并且在使用时都做了哪些操作:解析、布局、渲染、I/O、应用程序代码等等。它还能够显示 UI 及混合线程的帧速率,并且还集成了 CPU 的性能诊断能力,因此更易于找到应用的瓶颈。

当你发现你所寻找的某段代码时,一种常见的作法是在这段代码之前与之后设置一对断点。Visual Studio 如今能够意识到这种模式,并自动显示运行至当前断点及前一个断点之间所需的时间。

查看英文原文: WPF Tooling in Blend and Visual Studio 2015

2015-04-28 07:184464
用户头像

发布了 428 篇内容, 共 199.0 次阅读, 收获喜欢 39 次。

关注

评论

发布
暂无评论
发现更多内容

一束光的旅程

白洞计划

Ai特征选择,一篇就够了

泳鱼

Python 人工智能 机器学习 深度学习 AI

2021年GitHub上爆火的999页Java面试宝典终开源

比伯

Java 编程 架构 面试 程序人生

如何阅读 Java 字节码(Byte Code)

Kori Lin

Java JVM bytecode 字节码

4大华为云“安全镖局”秘密法宝揭秘

华为云开发者联盟

态势感知 华为云 企业主机安全 数据安全中心 Web应用防火墙

EGG NETWORK永动金融EFTalk火爆来袭

币圈那点事

WC,误删数据库了,会被开除吗?

Java架构师迁哥

悖论和直觉

阳龙生

HUBDEX交易所系统开发源码案例

系统开发咨询1357O98O718

【JS必知必会】高阶函数详解与实战

koala

JavaScript 面试 大前端

Ai调参炼丹,一篇就够了

泳鱼

Python 机器学习 深度学习 AI

Google Material Design 元件库

zhuchuanming

元件库

数据加密:你应该知道的数仓安全

华为云开发者联盟

数据加密 GaussDB(DWS) 数仓安全 透明加密 加密函数

牛链NB系统开发案例源码

系统开发咨询1357O98O718

阿里P7大牛手把手教你!美团Android开发工程师岗位职能要求,附赠课程+题库

欢喜学安卓

android 程序员 面试 移动开发

巩固知识体系!应聘高级Android工程师历程感言,面试建议

欢喜学安卓

android 程序员 面试 移动开发

深入理解 JavaScript, 从作用域与作用域链开始

koala

JavaScript 大前端

Apache Ranger安全认证配置

大数据技术指南

大数据 3月日更

Spark性能调优-Shuffle调优及故障排除篇

五分钟学大数据

spark Spark调优 3月日更

如何实现一个简易版的 Spring - 如何实现 Setter 注入

mghio

spring 依赖注入

Java面试必问:一位清华大牛用一个坦克大战讲明白了23种设计模式(视频+源码笔记)

Java架构追梦

Java 架构 面试 设计模式 坦克大战

经常被面试官问道的JavaScript数据类型知识你真的懂吗?

koala

JavaScript 面试 大前端

小鼎量化机器人系统开发详情介绍

系统开发咨询1357O98O718

Android开发必须要会!2021大厂Android面试经验,全网疯传

欢喜学安卓

android 程序员 面试 移动开发

SpringBoot-技术专题-启动自动装配过程

码界西柚

spring springboot

滴滴OCE惊喜福利!

滴滴云

【实战问题】-- 缓存穿透之布隆过滤器(1)

秦怀杂货店

缓存 布隆过滤器 java;

Python OpenCV 图像旋转,取经之旅第 11 天

梦想橡皮擦

3月日更

领域驱动设计101 - 绑定模型与实现

luojiahu

领域驱动设计 DDD

实例讲解如何制作Python模式程序

华为云开发者联盟

Python 编程语言 星型程序 Programs 模式程序

一文归纳Python特征生成方法(全)

泳鱼

Python 机器学习 深度学习

Blend与Visual Studio 2015中的WPF工具_语言 & 开发_Jonathan Allen_InfoQ精选文章