[WPF] 考古Expression Web:微软当年最漂亮的WPF软件
1. 什么是Expression Web

Expression Studio是微软在2007年推出的一套针对设计师的套件,其中包含专业的设计工具和新技术,可以弹性且自由地将设计方案转为实际——无论设计的是标准的网站、拥有丰富用户经验的桌面应用,或是管理数字资产和内容。它包含以下部分:
- Expression Blend 4 + SketchFlow
- Expression Web 4 + SuperPreview
- Exression Design 4
- Expression Encoder Pro
具体信息可以参考这里:
Expression Studio 4正式版发布 - jv9 - 博客园
其中,Expression Web 是一个专业的设计工具,可用来建立现代感十足、且以标准为基础的网站,让您在 Web 上提供绝佳的质量。 透过使用强大的设计工具和工作窗格快速地合并 XML 数据,减少复杂度和简化数据整合。
透过 Expression Web 和 Visual Studio 对于 XML、ASP.NET 和 XHTML 的绝佳支持,您可以顺畅地整合 Web 设计和开发团队。 透过复杂的 CSS 设计功能,释放您的创意点子,并替您的网站注入活力。可视化的设计工具、专门的工作窗格和工具列,让您精确地控制版面配置和格式。
具体信息可以参考这里:
可是Expression这个品牌十分短命,5年后就被微软放弃了,只剩下被整合进Visual Studio的Blend,具体可见当时的报道:
微软终止 Web、设计和媒体工具 Expression 套件,Web 和 Design 免费提供下载
2. 为什么是Expression Web
最近打算写Blend的博客,突然来了兴致想看看很久没用过的Expression Studio,因为Expression Studio中的其它几个(Design,Encode)这两年时不时都还会用一下,所以就拿Web来怀旧。
这篇文章为什么分类为WPF?因为Expression Studio的剩余价值不在于它开发Web的功能,而在于它本身是一个有趣WPF软件。
3. Expression Web的功能
最新版的Web可以在以下地址下载:
Download Microsoft Expression Web 4 (Free Version) from Official Microsoft Download Center


安装画面即使现在看来也还是很漂亮,好歹当年是主打设计功能的软件,它本身的设计也不能差。

安装完后在“About”窗口可以看到最后更新是2012年。

这就是它的主界面,除了常用的Web设计功能,有两个功能我印象深刻,其中一个就是上图的Interactive Buttons,可以创建多个样式的按钮,并提供了这些按钮的图片。在当年我常常把这些图片拿去Silverlight上用。后来我写XAML越来越熟练,反而越来越觉得系统中的按钮应该越简洁越好,就再也不使用这种图片按钮了。
另一个印象深刻的功能是Microsoft Expression Web SuperPreview,它是微软发布的最好的IE调试工具,它可以让我们在各个版本 IE 浏览器下调试网站,使得网站在各个版本 IE 浏览器下兼容。在当时IE占有率有绝对优势的时候,说它是微软发布的最好的浏览器调试工具也不为过。

可是毕竟年代久远,在我的Windows 10电脑上已经运行不了IE6的部分,或许Windows 7 还可以试试吧。

4. Web的遗产

上面是正在被Visual Stuido 2019调试的Expression Web。在当时Expression Studio是微软发布的最漂亮的WPF软件,连右键菜单都经过精心设计,即使现在看来都很时髦(设计潮流又轮回了一次,最近微软又重新喜欢上了下面这种圆角设计):

Web运行速度也很快,整体UI十分流畅。既然已经不更新了,开源才是它们最好的归宿,毕竟现在很多WPF软件做得还不如当年的微Expression Studio,可惜微软完全没这个打算。如果有兴趣的话可以反编译抄抄它的控件,其实很久以前已经有人做过这方面的工作,例如这个项目:
WpfExpressionBlendTheme: A WPF theme which will make an application look like Expression Blend.
5. 结语
很多年前我还偶尔会用用Expression Web,前同事的设计师当年也常常夸Web好看又好用。另一个软件Design也很好用(10年前),有趣的是它的配色和最新的Adobe Illustrator 2020还很像,可以说微软难得前卫了一次:


[WPF] 考古Expression Web:微软当年最漂亮的WPF软件的更多相关文章
- WPF从入门到放弃系列第一章 初识WPF
什么是WPF WPF(Windows Presentation Foundation)是微软推出的基于Windows Vista的用户界面框架,属于.NET Framework 3.0的一部分.它提供 ...
- WPF和Expression Blend开发实例:一个样式实现的数字输入框
原文:WPF和Expression Blend开发实例:一个样式实现的数字输入框 今天来一个比较奇淫技巧的手法,很少人用,同时也不推荐太过频繁的使用. 先上样式: <Style x:Key=&q ...
- WPF和Expression Blend开发实例:模拟QQ登陆界面打开和关闭特效
不管在消费者的心中腾讯是一个怎么样的模仿者抄袭者的形象,但是腾讯在软件交互上的设计一直是一流的.正如某位已故的知名产品经理所说的:设计并非外观怎样,感觉如何.设计的是产品的工作原理.我觉得腾讯掌握了其 ...
- SharePoint 使用Expression Web 设计网站
创建好网站以后可就可以开始发布了 possible causes : 1.The web server may not hava the FrontPage Server Extensions ins ...
- Java/javaEE/web/jsp/网站编程环境配置及其软件下载和网站路径
Java/javaEE/web/jsp/网站编程环境配置及其软件下载和网站路径 (2015/07/08更新) JDK下载地址(JDK官网下载地址) 下载地址为:http://www.oracle.co ...
- WPF笔记(1.8 资源与映射)——Hello,WPF!
原文:WPF笔记(1.8 资源与映射)--Hello,WPF! 终于,看明白了,已经是凌晨1:39分.这本书这一节写得实在是不好,一个local搞得我糊里糊涂,于是,准备按照他的思路,按照我的理解,改 ...
- WPF编程,获取句柄将外部程序嵌入到WPF界面。
原文:WPF编程,获取句柄将外部程序嵌入到WPF界面. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/details ...
- 浅谈WPF中对控件的位图特效(WPF Bitmap Effects)
原文:浅谈WPF中对控件的位图特效(WPF Bitmap Effects) -------------------------------------------------------------- ...
- WPF 使用DMSkin for WPF 快速搭建漂亮的WPF程序
DMSkin-for-WPF是一个基于WPF的.Net WPF开源界面库,实现了无边框的WPF开发方案,内置部分控件模板. 你可以参照模板自行修改完善.(以下简称DFW). 核心 DFW实现了比较完美 ...
随机推荐
- HDU - 3791 建立二叉搜索树
题意: 给定一个序列,下面又有n个序列,判断这个序列和其他序列是否为同一个二叉树(同一序列数字各不相同) 思路: 首先讲将一个序列建立成二叉搜索树,然后将其他序列也建立二叉搜索树,两个树进行前序遍历, ...
- Selenium系列(十六) - Web UI 自动化基础实战(3)
如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...
- jQuery操作DOM的相关方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- iOS 真机查看沙盒目录
iExplorer 的方法试的时候设备都无法检测到,建议放弃 启用iTunes文件共享,才能够看沙盒内的文件,只需要在plist文件中添加如下信息: <key>UIFileSharingE ...
- python—json
一.json数据类型:是字符串 # json通用数据类型,所有语言都可以用 # {k-v}形式存在,里面只能用双引号"" # 定义json字符串,要用'''{}'''格式 #htt ...
- 详细解析kafka之 kafka消费者组与重平衡机制
消费组组(Consumer group)可以说是kafka很有亮点的一个设计.传统的消息引擎处理模型主要有两种,队列模型,和发布-订阅模型. 队列模型:早期消息处理引擎就是按照队列模型设计的,所谓队列 ...
- STL(六)——map、multimap
STL--map.multimap 文章目录 STL--map.multimap 关联容器与map的介绍 map与set的异同 map与multimap的异同 map类对象的构造 map添加元素 ma ...
- Vertica的这些事(十一)——-Vertica备份元数据信息
---备份资源池 SELECT 'CREATE RESOURCE POOL ' || name || CASE WHEN memorysize IS NULL THEN ' ' ELSE ' MEMO ...
- 艾编程coding老师课堂笔记:SpringBoot源码深度解析
思想:有道无术,术尚可求,有术无道,止于术! Spring 开源框架,解决企业级开发的复杂性的问题,简化开发 AOP, IOC Spring 配置越来多,配置不方便管理! Javaweb---Serv ...
- JavaScript-原始值和引用值
一.原始值和引用值的概念 在 ECMAScript 中,变量可以存在两种类型的值,即原始值和引用值. 1.1 原始值 (1)原始值指的是 原始类型 的值,也叫 基本类型,例如 Number.Stirn ...