原文:用XAML做网页!!—开篇

    这几日一直没发表新文章,一来是因为事比较多,二来就是我在研究使用XAML挑战传统HTML来做网页,这很可能是在全球的首次尝试,至少我从未找到任何可供参考的相关资料。

    我对这次挑战的结果打7分:

    XAML在页面布局、图形、动画及可控性方面的表现堪称完美,我甚至根本想不出来有什么能与之平分秋色;

    兼容性方面,XAML通吃所有Windows平台的各种浏览器,它实际上都是由后台的那个叫“Windows 演示基础主机”来解析和呈现的,所以只要是装有.Net 3.0的系统,不管什么浏览器都可以看,而且看起来都一样(非IE7的话会自动加一个导航条用来控制前进和后退);

    对于XAML功能性测试不在本次挑战的范围内,因为我为挑战HTML而完全使用XAML来创制,没有加入任何程序代码,但WPF浏览器应用程序的功能性之强大是显而易见的,说白了它就是一个套着浏览器马甲的Windows桌面程序,这显然比JS等脚本语言能实现的功能要多得多;

    XAML的呈现速度相比HTML来说存在差距,这主要体现在页面的载入和刷新时的等待上,不需要任何测试工具,你就能了解到它们的载入所需时间差异,但好在延迟不算太大,且对于XAML卓著的功能来讲,这是完全可以接受的;

    XAML明显的不足来自于文本布局,曾以为流文档可以完全胜任这方面的工作,谁知它和页面布局的接合能力简直可以用“一团糟”来形容,我认为这些是设计上的重大缺陷,在后面我会对此进行总结。

    我会在接下来的文章中重现我的创制步骤,在此之前先来展示一下最终实现的效果:

    完整尺寸页面抓图

    运行在Vista系统IE7中的抓图

    运行在XP系统FireFox中的抓图(未安装微软雅黑字体,所以字体看起来比较难看)

    此示例所呈现的内容除了正文中那个外链的小插图外,所有均使用XAML描述,未使用任何点阵图、Flash动画及程序代码,最终用于浏览的文件只有下面这些XAML文件:

    其中default.xaml是主页面,Info.xaml是嵌入到内容区域的流文档,其余均为由 Microsoft Expression Design 设计的图形资源。

    此示例所产生的布局是液态的。页面宽度可随浏览器宽度伸展,我设定了页面最小宽度为1000;页面高度是随其内容而变化的。

    创作步骤请待下篇。

用XAML做网页!!—开篇的更多相关文章

  1. 用XAML做网页!!—边栏与页脚

    原文:用XAML做网页!!-边栏与页脚 此次我们来设计边栏和页脚,首先从页脚开始,其代码很简单: <Border x:Name="Footer" BorderBrush=&q ...

  2. 用XAML做网页!!—导航栏

    原文:用XAML做网页!!-导航栏 这次要完成的是导航栏,这是页面中比较复杂的区域. 先在 Microsoft Expression Design 中绘制导航栏的背景图案: 导出为barback.xa ...

  3. 用XAML做网页!!—广告展示区

    原文:用XAML做网页!!-广告展示区 此次我们来进行广告展示区块的制作. 首先在Show区块中去掉原来设置的背景色,加入新的渐变背景设定: <Grid.Background> <L ...

  4. 用XAML做网页!!—页头

    原文:用XAML做网页!!-页头 接续上次进度,我们此次来制作页头. 首先要实现两侧边缘的美化,如下图所示: 在边缘处有一层朦胧的亮度反光效果,这也是通过简单的渐变实现的,而且我们在后面的每个区块中都 ...

  5. 用XAML做网页!!—框架

    原文:用XAML做网页!!-框架 上一篇中我进行了一下效果展示和概述,此篇开始将重现我此次尝试的步骤,我想大家通过阅读这些步骤,可以了解到XAML网页排版的方法. 下面就开始编写XAML,首先来定义一 ...

  6. 用XAML做网页!!—终结篇

    原文:用XAML做网页!!-终结篇 迄今为止的设计都很顺利,但这次就不得不接触我前面所说的非常糟糕的流文档了,但在此之前先来把标题弄好: <Border BorderBrush="#6 ...

  7. 用做网页开发经历了三个阶段(附长篇讨论) good

    用做网页开发经历了三个阶段:第一阶:傻干阶段使用Intraweb,傻瓜型,无需知道javascript,html,css,会pascal就可以了. 第二阶:困惑阶段使用Intraweb,有很多限制,比 ...

  8. 【学】CSS3基础实例1 - 用CSS3做网页中的小三角,以及transition的用法

    自开了博客园已经有2周了吧,虽然转载了一些觉得比较有用的文章之外还没有开始写自己的一些学习记录,那就从今天开始. 目前看了妙味的不少视频,有css+html,js的基础和中级也都看完了,作业也都做了, ...

  9. 有人说,即使没有JavaScript,你也可以做网页。在纯HTML

    有人说,即使没有JavaScript,你也可以做网页.在纯HTML +服务器端语言理论中也可以完成所有功能,那么,为什么以及在哪里存在JavaScript?   JS,全称JavaScript   在 ...

随机推荐

  1. python发送post和get请求

    python发送post和get请求 get请求: 使用get方式时,请求数据直接放在url中. 方法一. import urllib import urllib2 url = "http: ...

  2. 在程序异常中记录堆栈信息(使用ExWatcher)

    在我们编写程序的时候可通过IDE自带的调试环境捕捉到异常(Except)错误,并能查看到相关的信息以便我们修正程序中的问题.但当软件被发布出去后,因为所部署运行的环境与我们的调试环境有很大区别,即使在 ...

  3. java内存模型与线程(转) good

    java内存模型与线程 参考 http://baike.baidu.com/view/8657411.htm http://developer.51cto.com/art/201309/410971_ ...

  4. HUNNU11342:Chemistry(模拟)

    http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11342 Problem description The ch ...

  5. 积累的VC编程小技巧之标题栏和菜单

    1.窗口最大最小化按纽的控制 ①怎样在程序开始的时候让它最大化? ②vc++做出来的exe文件在窗体的右上方是没有最大化和最小化按钮的,怎样实现这一功能? ③如何在显示窗口时,使最大化按钮变灰?   ...

  6. C++内存管理学习笔记(5)

    /****************************************************************/ /*            学习是合作和分享式的! /* Auth ...

  7. Swift - 给表格添加编辑功能(删除,插入)

    1,下面的样例是给表格UITableView添加编辑功能: (1)给表格添加长按功能,长按后表格进入编辑状态 (2)在编辑状态下,第一个分组处于删除状态,第二个分组处于插入状态 (3)点击删除图标,删 ...

  8. Delphi回调函数及其使用

    Delphi回调函数及其使用 1 回调函数的概述 回调函数是这样一种机制:调用者在初始化一个对象(这里的对象是泛指,包括OOP中的对象.全局函数等)时,将一些参数传递给对象,同时将一个调用者可以访问的 ...

  9. 2014年Windows平台软件推荐:神器小工具(骨灰级

    原文  http://www.wtoutiao.com/a/120621.html 底层工具 “If you know how to use Process Monitor competently, ...

  10. iPhone开发【一】从HelloWorld開始

    转载请注明出处,原文网址:http://blog.csdn.net/m_changgong/article/details/8013553 作者:张燕广 从经典的HelloWorld開始踏入iPhon ...