用XAML做网页!!—开篇

这几日一直没发表新文章,一来是因为事比较多,二来就是我在研究使用XAML挑战传统HTML来做网页,这很可能是在全球的首次尝试,至少我从未找到任何可供参考的相关资料。
我对这次挑战的结果打7分:
XAML在页面布局、图形、动画及可控性方面的表现堪称完美,我甚至根本想不出来有什么能与之平分秋色;
兼容性方面,XAML通吃所有Windows平台的各种浏览器,它实际上都是由后台的那个叫“Windows 演示基础主机”来解析和呈现的,所以只要是装有.Net 3.0的系统,不管什么浏览器都可以看,而且看起来都一样(非IE7的话会自动加一个导航条用来控制前进和后退);
对于XAML功能性测试不在本次挑战的范围内,因为我为挑战HTML而完全使用XAML来创制,没有加入任何程序代码,但WPF浏览器应用程序的功能性之强大是显而易见的,说白了它就是一个套着浏览器马甲的Windows桌面程序,这显然比JS等脚本语言能实现的功能要多得多;
XAML的呈现速度相比HTML来说存在差距,这主要体现在页面的载入和刷新时的等待上,不需要任何测试工具,你就能了解到它们的载入所需时间差异,但好在延迟不算太大,且对于XAML卓著的功能来讲,这是完全可以接受的;
XAML明显的不足来自于文本布局,曾以为流文档可以完全胜任这方面的工作,谁知它和页面布局的接合能力简直可以用“一团糟”来形容,我认为这些是设计上的重大缺陷,在后面我会对此进行总结。
我会在接下来的文章中重现我的创制步骤,在此之前先来展示一下最终实现的效果:

运行在XP系统FireFox中的抓图(未安装微软雅黑字体,所以字体看起来比较难看)
此示例所呈现的内容除了正文中那个外链的小插图外,所有均使用XAML描述,未使用任何点阵图、Flash动画及程序代码,最终用于浏览的文件只有下面这些XAML文件:

其中default.xaml是主页面,Info.xaml是嵌入到内容区域的流文档,其余均为由 Microsoft Expression Design 设计的图形资源。
此示例所产生的布局是液态的。页面宽度可随浏览器宽度伸展,我设定了页面最小宽度为1000;页面高度是随其内容而变化的。
创作步骤请待下篇。
用XAML做网页!!—开篇的更多相关文章
- 用XAML做网页!!—边栏与页脚
原文:用XAML做网页!!-边栏与页脚 此次我们来设计边栏和页脚,首先从页脚开始,其代码很简单: <Border x:Name="Footer" BorderBrush=&q ...
- 用XAML做网页!!—导航栏
原文:用XAML做网页!!-导航栏 这次要完成的是导航栏,这是页面中比较复杂的区域. 先在 Microsoft Expression Design 中绘制导航栏的背景图案: 导出为barback.xa ...
- 用XAML做网页!!—广告展示区
原文:用XAML做网页!!-广告展示区 此次我们来进行广告展示区块的制作. 首先在Show区块中去掉原来设置的背景色,加入新的渐变背景设定: <Grid.Background> <L ...
- 用XAML做网页!!—页头
原文:用XAML做网页!!-页头 接续上次进度,我们此次来制作页头. 首先要实现两侧边缘的美化,如下图所示: 在边缘处有一层朦胧的亮度反光效果,这也是通过简单的渐变实现的,而且我们在后面的每个区块中都 ...
- 用XAML做网页!!—框架
原文:用XAML做网页!!-框架 上一篇中我进行了一下效果展示和概述,此篇开始将重现我此次尝试的步骤,我想大家通过阅读这些步骤,可以了解到XAML网页排版的方法. 下面就开始编写XAML,首先来定义一 ...
- 用XAML做网页!!—终结篇
原文:用XAML做网页!!-终结篇 迄今为止的设计都很顺利,但这次就不得不接触我前面所说的非常糟糕的流文档了,但在此之前先来把标题弄好: <Border BorderBrush="#6 ...
- 用做网页开发经历了三个阶段(附长篇讨论) good
用做网页开发经历了三个阶段:第一阶:傻干阶段使用Intraweb,傻瓜型,无需知道javascript,html,css,会pascal就可以了. 第二阶:困惑阶段使用Intraweb,有很多限制,比 ...
- 【学】CSS3基础实例1 - 用CSS3做网页中的小三角,以及transition的用法
自开了博客园已经有2周了吧,虽然转载了一些觉得比较有用的文章之外还没有开始写自己的一些学习记录,那就从今天开始. 目前看了妙味的不少视频,有css+html,js的基础和中级也都看完了,作业也都做了, ...
- 有人说,即使没有JavaScript,你也可以做网页。在纯HTML
有人说,即使没有JavaScript,你也可以做网页.在纯HTML +服务器端语言理论中也可以完成所有功能,那么,为什么以及在哪里存在JavaScript? JS,全称JavaScript 在 ...
随机推荐
- 核心游记之 page_address_init
lock_kernel()仅仅虚晃一枪就过去了. 紧接着来的是page_address_init include/linux/mm.h #if defined(CONFIG_HIGHMEM) &a ...
- 快速排序原理、复杂度分析及C语言实现
本文作者华科小涛:@http://www.cnblogs.com/hust-ghtao/,参考<算法导论>,代码借用<剑指offer> 快速排序是一种最坏情况时间复杂度为的排序 ...
- 使用BigDecimal来进行精确计算
在一些以金融等行业中的计算是需要十分精确的,即使我们使用像double这样的类型,由于浮点数的原因,会使得数据计算变得不精确,例如下面的例子: double a = 0.1; double b = 0 ...
- Sublime Text3 + Golang搭建开发环境
Sublime Text3 + Golang搭建开发环境 http://blog.csdn.net/aqiang912/article/details/46775409 1.安装git 因为golan ...
- c# in depth之泛型的类型约束详细
类型约束 1.引用类型约束 这种约束(表示成T:class,必须是为类型参数指定的第一个约束)用于确保使用的类型实参是引用类型,这可能是任何类,接口,数组,委托或者已知是引用类型的另一个类型参数. 例 ...
- 阿斯钢iojeg9uhweu9erhpu9hyw49
http://www.huihui.cn/share/8424421 http://www.huihui.cn/share/8424375 http://www.huihui.cn/share/842 ...
- hbulider mui框架
1.webview http://www.dcloud.io/docs/api/zh_cn/webview.shtml#plus.webview.WebviewStyle http://www.dcl ...
- TApplication.Initialize的前世今生
---------------------------------------------------------------------------------------------------- ...
- mysql 查询优化案例
mysql> explain SELECT c.`sn` clientSn,asm.`clientManagerSn`,pry.`productSn`,1 TYPE,pr.`capitalBal ...
- 海蜘蛛网络科技官方网站 :: 做最好的中文软路由 :: 软件路由器 :: 软路由 :: 软件路由 :: RouterOs
海蜘蛛网络科技官方网站 :: 做最好的中文软路由 :: 软件路由器 :: 软路由 :: 软件路由 :: RouterOs 企业简介 武汉海蜘蛛网络科技有限公司成立于2005年,是一家专注于网络新技术研 ...