Vista Sidebar Gadget (侧边栏小工具)开发教程 (3)

摘要:
开心网向大家提出了需求,并提供了解决技术问题的思路。我不知道有多少朋友开始写他们的第一个SidebarGadget,它不是“HelloWorld”。从今天开始,我们将逐步介绍开发SidebarGadget的具体方法。使用Gadget XML定义SidebarGadget。就像计算机语言有一个入口功能一样,SidebarGadget在启动时也会有一个主入口。主条目文件是Gadget xml此外,当您将小工具从边栏拖动到桌面时,其页面大小将发生变化。为什么?

源自-开心就好- 2006年11月

话说从前,书接上回。开心已经向大家提出了一个需求,并且给出解决技术难题的思路,不知道有多少位朋友已经开始尝试编写自己的第一个非“Hello World”的Sidebar Gadget了。那么今天开始,我们就开始逐步介绍开发Sidebar Gadget的具体方式。

使用Gadget.xml来定义Sidebar Gadget

就像计算机语言都会有一个入口函数一样,Sidebar Gadget在启动时也会有一个主入口,而这个主入口文件呢就是Gadget.xml。但该文件你可以存放在多个区域,即Gadget的根目录,或者Gadget的地区语言(如zh-cn, en-us等)目录。按照我的理解,Gadget应该先会找最适合地区语言目录下的Gadget.xml,其次再找根目录中gadget.xml,而一个典型的Gadget.xml文件结构如下所示(Vista自带的时钟Gadget的描述文件,文档中红色文字为开心的注释文字,而注释中的数字标识与附图中的数字标识一一对应):

<?xml version="1.0" encoding="utf-8"?>
<gadget>
<name>时钟</name> 定义Gadget名称(1)
<namespace>microsoft.windows</namespace> 定义Gadget的命名空间,与JS交互
<version>1.0.0.0</version> 版本信息(2)
<author name="Microsoft Corporation"> 作者信息(3)
<info url="http://go.microsoft.com/fwlink/?LinkId=55696" text="www.gallery.microsoft.com"/> 作者网站的链接地址Vista Sidebar Gadget (侧边栏小工具)开发教程 (3)第1张(4)
<logo src="http://t.zoukankan.com/logo.png"/>作者的Logo信息(5)
</author>
<copyright>? 2006</copyright> 版权信息(6)
<description>查看您所在时区或全球任何城市的时钟。</description> 功能描述信息(7)
<icons>
<icon src="http://t.zoukankan.com/icon.png"/> 显示在小工具待选箱时的图标(8)
</icons>
<hosts>
<host name="sidebar">仅支持Sidebar,未来如果大一统了,可能Live.com或者Slideshow都会使用统一的方式
<base type="html" apiVersion="1.0.0" src="http://t.zoukankan.com/clock.html"/>type仅支持html,未来有可能会支持WPF,WPF/E或者AJAX;src用以指明主界面的HTML源文件
<permissions>full</permissions>目前仅可以设置Full,请参阅此文
<platform minPlatformVersion="1.0"/>
<defaultImage src="http://t.zoukankan.com/drag.png"/>在从小工具备选箱用鼠标拖到Sidebar时所显示的Logo
</host>
</hosts>
</gadget>

Vista Sidebar Gadget (侧边栏小工具)开发教程 (3)第2张 通过上面的信息,Sidebar可以得到Gadget中的相关信息,但一个Gadget还不止如此,比如上面的这个时钟显示在Sidebar当中时,应该如 左图所示。在这个截图中,我们注意到有一个小扳手式的图标,使用它可以选择自己心爱的钟表外型或者进行其它的自定义设置,那么此部分是如何反应在源代码中的?

还有,有一些Gadget,比如自带的RSS Reader,当单击某文章标题时,会自动在左侧弹出来一个Flyout窗口,这个窗口的设置如何在源代码中反应呢?

还有,系统自带的那个CPU以及内存使用量的Gadget,类似于汽车的转速表,它又是如何得到这种实时的系统信息的呢?

还有,当把一个Gadget从Sidebar拖到桌面时,其页面大小会发生改变,这又是为什么呢?

还有,Gadget中有很多透明效果,比如那个表的周围就是透明的,呈一个圆形,或者其它类型,而不是我们常见网页的矩形,这又是为什么呢?

还有,Gadget中的服务器端与客户端交互实现局部刷新却又没有使用ASP.NET AJAX框架,这又是为什么呢?

呵呵,如果你感兴趣,欢迎继续阅读本教程,今天就先到这儿吧。

免责声明:文章转载自《Vista Sidebar Gadget (侧边栏小工具)开发教程 (3)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SQL Server2000中死锁经验总结为什么测试覆盖率如此重要下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

海思MPP视频处理平台流程简介

海思MPP视频处理平台流程介绍海思芯片系统概述首先,让我们了解海思芯片SOC。下图是hi3519A芯片设计图。图1是hi3519AV100芯片设计图。芯片设计图有助于我们全面了解海思的图像处理。从上图中,我们可以看到许多控制芯片集成在芯片SOC中,例如用于深度学习的NNIE硬核、IVE硬核、视频编码和解码单元H265/H264Codec以及图像处理单元ISP...

Redis设置Auth认证保护

Redis有一种保护数据安全的身份验证方法。有两种方法可以设置此身份验证。一个是通过配置文件。另一种是直接在Redis客户端命令中设置参数requirepas。首先是在配置文件中查找参数requirepass。这是配置Redis访问密码的参数。由于Redis具有很强的并发能力,并且只使用密码,攻击者可能会在短时间内发送大量密码猜测请求,这很容易被暴力破解。因...

微软新一代输入法框架 TSF

目前,市场上的非微软中文输入法基本上只实现IMM框架。自Windows XP开始以来,Windows提供了一个基于COM的新输入框架TSF。但是,Windows Vista和Windows 7用户也可以使用各种基于IMM的输入方法,因为Windows提供了一个组件来将所有TSF请求转换为IMM API。很可能,因为Win8下的许多Imm函数无法使用。)根据微...

zabbix监控华为交换机

xmlversion=“1.0”encoding=“UTF-8”?...

笔试题多线程

多线程是实现异步的主要方式之一,异步不等于多线程。NET有很多异步编程支持。例如,Begin***和End***方法在许多地方都可用,这是一种异步编程支持。它的一些内部程序是使用多线程的异步编程,而其他程序是使用硬件功能的异步编程。因为多线程访问不使用锁定机制,所以更新将丢失。...

Gidot TypeSetter (排版助手) 3.1.1.2

我们来看看:打开排版助手,可以看到常用的排版功能按钮排列在五个菜单选项下。图2如果您需要更高级的排版,也可以在界面右上角的“typesetting Widget”中进行设置。例如,如果您选择“网页”功能按钮来导入带有HTML代码的文本,您也可以从排版小部件中删除HTML代码功能。...