RSS
people

网站终于又恢复了

???????? 谢谢大家的关注,网站停了两天后终于又恢复了,没有办法吗?空间出问题了。好在已经开通了,感谢上帝了!

???????? 说说自己吧,首先表扬一下自己,感觉自己状态还不错,生活也蛮开心的,感谢《秘密》带给我这些,当然我还有很多的愿景要实现。在这里就不便说了,但是从心里已经很明确了,我知道努力的方向了。希望《秘密》能够继续伴随我!

???????? 不过说实话对自己也有点不太满意的地方,第一,感觉自己不够勤奋,有些倦怠了。第二,机会到来的时候自己有些怯懦了。有了目标可是努力不够了,我要保持自己的动力,实现今年和明年的目标,一切都能明朗了,郭光太努力吧,就靠你自己了。其次一定要学会展示自己,把自己的想法展示给别人,只有这样别人才能了解你哦,也只有公司的同事才会认可你的能力。有机会来得时候一定不要轻易放弃,有些机会只有一次,错过就再也没有了……废话不说了,努力吧!

6 Comments | Tags: , , ,

XML的运用

XML(eXtensible Markup Language可扩展置标语言),它是有别于HTML(Hyper Text Markup Language超文本置标语言)的一种数据表示规范。由于它极大的灵活性和方便性,在存储和表示数据方面占据了巨大的优势。
ActionScript中的XML对象为你提供了访问XML文档的途径,使用点语法和XML对象的属性可以方便地访问XML文档(既可以是存储XML数据的文本文档,也可以是XML格式的文档)中的具体数据,并可以在Flash中将外部XML文档中的数据显示出来。

一、XML基础
XML与HTML有相似之处,因为它们都使用标签(tag)。但是HTML中的标签都是HTML的语法所预定好的,如<font></font>表示字体,<br>表示换行等;而XML中的标签则可以由用户根据需要、习惯和爱好自由指定,如下所示是一个XML的例子:
<student>
<name>Thyme</name>
<age>18</age>
<score>
<English>94</English>
<Physics>86</Physics>
<Chemistry>99</Chemistry>
</score>
<grade>B</grade>
</student>
上例的XML文档定义了一个student对象,在student对象下面包含4组信息,分别是name、age、score和grade,在score下面又分为English、Physics、Chemistry这3类,以上这些成对出现的标志即是XML的标签,标签又称为XML的元素(element)或节点(node)。每对节点之间包含与该节点相对应的数据,这些数据又称为文本节点(text node)。
使用XML表示的数据结构一目了然,这也是它之所以深受人们宠爱的原因之一。在Flash中使用XML对象可以方便地解析XML的数据结构,以访问需要的节点或数据。
XML的另一大优点就是可以使用简单的文本编辑器进行编辑,程序员可以很容易地编写出访问XML格式数据的程序。这也为使用Flash制作与服务器交互的影片提供了一条捷径。
16.2 XML对象
同ActionScript的其他对象一样,要使用XML对象,就得先创建XML对象的实例,其方法如下:
myXML = new XML();
XML对象提供了众多的属性、方法和事件,下面重点介绍常用的几种。
16.2.1 load方法
XML的load方法用于从指定的URL中加载XML文档,并使用下载的XML数据替换指定XML对象的内容。使用load方法加载的XML文档必须与Flash影片处于相同的文件夹中。如下所示的ActionScript创建并从外部文本文档中加载XML对象:
myXML = new XML();
myXML.load(“XMLData.txt”);
如下所示的ActionScript创建并从外部XML文档中加载XML对象:
myXML = new XML();
myXML.load(“XMLData.xml”);
和LoadVars.load方法类似,使用XML.load命令后并不能立即将外部文档中的数据加载到影片中,如果直接引用文档中的数据可能会得不到需要的结果。要判断XML文档是否已经加载到影片中,可以使用下面要介绍的onLoad事件。
16.2.2 onLoad事件
当从服务器上接收XML文档时,由Flash Player调用XML的onLoad事件。调用onLoad事件时自动返回一个参数success,如果成功地收到XML文档,则success参数为true;如果未收到该文档,或从服务器上接收响应时出现错误,则success参数为false。
onLoad事件的使用方法如下所示:
myXML = new XML();
myXML.load(“XMLData.txt”);
myXML.onLoad = function() {
if (success == true) {
trace(“XML is successfully loaded”);
} else {
trace(“Something is wrong with the XML document”);
}
};
16.2.3 childNodes属性
XML的childNodes属性返回指定XML对象的子级的数组,数组中的每个元素都是对表示子节点的XML对象的引用,也就是说childNodes属性将XML对象当前级的子级节点作为一个数据返回。与数据一样,使用方括号可以访问数据的每一个元素。
例如外部文档中有图16-1所示结构图的XML对象,先将其加载到影片中的XML对象中:
myXML = new XML();
myXML.load(“XMLData.xml”);
myXML.onLoad = function(success) {
if (success == true) {
trace(myXML.childNodes[0]);
}
};
运行以上脚本,输出窗口中将显示整个XML对象
将上面脚本中的trace语句换成如下所示:
trace(myXML.childNodes[0].childNodes[0]);
运用脚本,奇怪,输出窗口中没有显示。其实并不是没有显示,而是因为<student>后面有一个换行,Flash没能识别这个换行,而是将一个空行也作为XML对象的一个节点了。如果要验证,可以运行以下脚本:
trace(myXML.childNodes[0].childNodes[1]);
输出窗口中显示:
<name>Thyme</name>
如果Flash Player不能识别空格和空行,那么就不能把XML文档写成很有层次的格式,也就不方便我们阅读了。事实上,不用担心,下一个属性将帮助你解决这个问题。
16.2.4 ignoreWhite属性
ignoreWhite属性的默认设置为false,当设置为true时,在分析过程中将放弃仅包含空白的文本节点。要解决前面遇到的问题,只需要将XML对象的ignoreWhite属性设置为true即可。
在上例中使用如下所示的ActionScript将在输出窗口中返回<name>Thyme</name>:
myXML = new XML();
myXML.load(“XMLData.xml”);
myXML.ignoreWhite = true;
myXML.onLoad = function(success) {
if (success == true) {
trace(myXML.childNodes[0].childNodes[0]);
}
};
如果要返回<Physics>86</Physics>就需要如下的ActionScript:
trace(myXML.childNodes[0].childNodes[2].childNodes[1]);
如何才能返回Physics字段中的86呢?下面的ActionScript可以吗:
trace(myXML.childNodes[0].childNodes[2] .childNodes[1].childNodes[0]);
上面的脚本的确是返回了86,但事实上,它返回的是86这个节点,而不是这个节点中的文本。要得到文本节点中的文本字段,就需要使用nodeValue属性。
16.2.5 nodeValue属性
nodeValue属性返回XML对象的节点值。如果XML对象为文本节点,则nodeValue为该节点的文本;如果该XML对象是XML元素,则其nodeValue为null。
要得到上例中的文本86,可以使用如下所示的ActionScript:
trace(myXML.childNodes[0].childNodes[2].childNodes[1].childNodes[0].nodeValue);
既然XML元素和XML的文本节点是有区别的,就有必要将这两种类型的节点区别开来。
16.2.6 nodeType属性
nodeType是一个只读属性,值为1表示XML元素,为3表示文本节点。如上例中,使用以下脚本将分别返回1和3。
trace(myXML.childNodes[0].childNodes[2].childNodes[1].nodeType);
trace(myXML.childNodes[0].childNodes[2].childNodes[1].childNodes[0].nodeType);
16.2.7 nodeName属性
与节点密切相关的还有一个nodeName属性。nodeName属性返回XML对象的节点名称,如果该XML对象是一个XML元素(nodeType==1),则nodeName是表示XML文件中节点的标签名称;如果该XML对象为文本节点(nodeType==3),则nodeName为null。如上例中,使用以下脚本将分别返回Physics和null:
trace(myXML.childNodes[0].childNodes[2].childNodes[1].nodeName);
trace(myXML.childNodes[0].childNodes[2].childNodes[1].childNodes[0].nodeName);
16.2.8 status属性
如果从外部加载进来的XML文档有漏洞,在Flash影片中引用时肯定会出现问题。XML对象的status属性可以帮助检查XML对象是否完整和存在缺陷。调用status属性将返回一个数值,该数值的不同状态分别表示不同的含义,如下所示:
= 0 没有错误;成功地完成了分析。
= -2 一个CDATA部分没有正确结束。
= -3 XML声明没有正确结束。
= -4 DOCTYPE声明没有正确结束。
= -5 一个注释没有正确结束。
= -6 一个XML元素有格式错误。
= -7 内存不足。
= -8 一个属性值没有正确结束。
= -9 一个开始标记没有匹配的结束标记。
= -10 遇到一个没有匹配的开始标记的结束标记。
通过分析status属性的不同值,可以对相应的XML文档作有针对性的检查和修改,直到没有错误为止。
16.3 练习:用表单显示XML文档内容
本练习的目的是使用表单加载和显示XML文档的内容,以对XML对象的各种常用属性、方法和事件有进一步的了解。本练习的源文件为XML.fla。在同一文件夹中包含一个XML格式的文档,其中的内容如下所示:
<form>
<formname>Author’s Information</formname>
<Name>
<firstname>Thyme</firstname>
<familyname>CD</familyname>
</Name>
<IDNo.>510228198111079090</IDNo.>
<Address>
<mailID>610031</mailID>
<Street>New 2 Fu Qing West Road</Street>
<City>Chengdu</City>
<Country>China</Country>
</Address>
<Tel>
<Home>028-87732901</Home>
<Move>028-81822013</Move>
</Tel>
<E-mail>chendong2000will@sina.com</E-mail>
</form>
在文件XML.fla的第一帧中添加了table0~table17共18个动态文本,在帧动作面板中添加了如下所示的ActionScript:
stop();
myXML = new XML();
myXML.ignoreWhite = true;
myXML.load(“information.xml”);
myXML.onLoad = function() {
if (myXML.status == 0) {
t0 = myXML.childNodes[0].childNodes[0].childNodes[0].nodeValue;
t1 = myXML.childNodes[0].childNodes[1].nodeName;
t2 = myXML.childNodes[0].childNodes[1].childNodes[0].childNodes[0].nodeValue;
t3 = myXML.childNodes[0].childNodes[1].childNodes[1].childNodes[0].nodeValue;
t4 = myXML.childNodes[0].childNodes[2].nodeName;
t5 = myXML.childNodes[0].childNodes[2].childNodes[0].nodeValue;
t6 = myXML.childNodes[0].childNodes[3].nodeName;
t7 = myXML.childNodes[0].childNodes[3].childNodes[3].childNodes[0].nodeValue;
t8 = myXML.childNodes[0].childNodes[3].childNodes[2].childNodes[0].nodeValue;
t9 = myXML.childNodes[0].childNodes[3].childNodes[1].childNodes[0].nodeValue;
t10 = myXML.childNodes[0].childNodes[3].childNodes[0].childNodes[0].nodeValue;
t11 = myXML.childNodes[0].childNodes[4].nodeName;
t12 = myXML.childNodes[0].childNodes[4].childNodes[0].nodeName;
t13 = myXML.childNodes[0].childNodes[4].childNodes[0].childNodes[0].nodeValue;
t14 = myXML.childNodes[0].childNodes[4].childNodes[1].nodeName;
t15 = myXML.childNodes[0].childNodes[4].childNodes[1].childNodes[0].nodeValue;
t16 = myXML.childNodes[0].childNodes[5].nodeName;
t17 = myXML.childNodes[0].childNodes[5].childNodes[0].nodeValue;
} else {
gotoAndStop(“error”);
}
};
第2帧用于显示XML文档加载出错的信息。将第2帧的帧标签设为error,在其中添加一个按钮“get more information”,在该按钮的动作面板中添加如下ActionScript:
on (release) {
gotoAndStop(“errorinfor”);
switch (myXML.status) {
case -2 :
errorinfor = “A CDATA has no correct ending”;
break;
case -3 :
errorinfor = “XML declaration has no correct ending”;
break;
case -4 :
errorinfor = “DOCTYPE declaration has no correct ending”;
break;
case -5 :
errorinfor = “A comment has no correct ending”;
break;
case -6 :
errorinfor = “An XML node has wrong format”;
break;
case -7 :
errorinfor = “Memory of computer is not enough”;
break;
case -8 :
errorinfor = “An attibute has no correct ending”;
break;
case -9 :
errorinfor = “A beginning tag without an ending one”;
break;
case -10 :
errorinfor = “An ending tag without a beginnig one”;
break;
}
}
将第3帧的帧标签设为errorinfor,并在第3帧中添加一个名为errorinfor的动态文本。当单击“get more information”按钮时,将在第3帧中显示相关的出错信息。
XML文档无误时的Flash表单如图16-3所示。试着改一下XML文档的内容(以记事本方式打开information.xml进行修改),此时的Flash影片如图16-4所示。单击“get more information”,

No Comments | Tags: , ,

希望中国赶快强大起来

“中国现在所面临的挑衅:?? 1.台湾要:入联公投?? 2.冰岛歌曲宣扬要西藏独立?? 3.英国政团介入政治抵抗奥运?? 4.越南在南沙群岛和中国硬掰?? 5.东突借某势力在新疆制造恐怖分离?? 6.日本在东海事宜强迫中国让出资源开发权?? 7.美国向联合国和国际组织又在提交新一次人权报告??? 在这里是中国人的,支持我们北京奥运的,支持国家统一完整的,主权不容侵犯的.请将这条信息传他10遍8遍的,让我们全体中国人都知道现在的形势,让我们团结起来支持政府共同抵制这些挑衅.让那些人知道我们中国人不在是东亚病夫,我们不在会受你们的欺负,我们每一个中国人都要为我们国家和自己的庄严,向你们哪怕拿起枪械与你们浴血战场”在论坛里看到了这段文字心里蛮难受,中国还不够强大,这些图谋不轨的家伙,一直要欺负我们中国,我顿时有了那种亡国奴的感觉,真的很耻辱,试想一下中国如果有美国那么强大,还有人找我们的事情吗?分裂我们的国家,干涉我们的内政。我可能有点愤青吧,可是看到一个和平时期中国还面临这么多的内忧外患,我真的很难受,为什么有这么多的人对我们图谋不轨呢?还有那可恶的达赖,有什么本事啊,杀害了那么多无辜的百姓,有什么人性啊,我真想活宰了这个王八蛋。我在此也做出一个决定,我以后再也不买日货了,本来想结婚买个夏普的液晶电视,过段时间买个佳能的相机了,算了吧,我以后决不再买日本货了……

No Comments | Tags: ,

IE8.0来了之后带给我们的启示

???????? IE8.0来了,狼来了……之前的页面又出问题了,怎么办,从IE6到IE7我们痛苦了一次,从IE7到IE8我们还要痛苦一次,很惨呀……不长记性的人们啊,等待自己就是痛苦了,虽然ie7到IE8算是一次进步的升级,因为它完全支持web标准了,但是带给开发者的还是痛苦的体验,因为页面又错乱了,唉真痛苦!两次升级两次痛苦的体验,我们学到什么呢?从本人而言,应该是IE6到IE7时,那段历史真的让人很难忘,本来交付好的项目,可是7.0发布了,没办法,客户要做7.0的测试,郁闷之极,熬夜改吧,本来完成的工作,又做多了一个星期。这不IE8出来了,原本以为8.0对web标准的支持变好了,兼容性问题应该不会出现,至少不会太多吧,然而事实却并非如此,用8.0测试我以前做过的项目发现问题出现了,郁闷之极,为什么会呢?我就在思考这个问题,怎么解决呢?如果下次再遇到浏览器升级,或者说浏览器更替怎么办呢?从本人的理解来看,为了减少或者避免浏览器的更替带给我们冗余的工作,我本人推荐从css的结构做起,由于现在浏览器对web标准的支持程度的差异,要兼容浏览器,一些针对性的hacks是在所难免的,然而浏览器的更新换代出现的页面错乱问题大多都和这些兼容性的hacks有关,并且我们最头疼的问题也就这是最这些hacks的处理,新的浏览器不支持,老的浏览器又不能省去。怎么办呢?分离hacks这对浏览器做分离比如IE6的双倍边距BUG,解决办法就是display:inline,这个是针对ie6那我们就把它放置在hacks_ie6.css里边,同理其它的补丁也做类似的处理,那我们在html里边呢?就用条注释判断浏览器是那个版本的,就用相应的hack_*.css文件。这样的话,即使浏览器升级,要修改css也不会影响目前的浏览器,只要针对当前的浏览器写相应的css文件就好了。这是本人的一点心得,跟大家分享一下,欢迎有不同意见的跟我交流。

No Comments | Tags: , , , , , ,

XAML基础

XAML

XAMLXML的一个分支,所以在本书中将使用很多中括号。我们将在本章XAML的最重要的元素。以本书的篇幅要讨论完所有的XAML元素是不可能的,但我们展现尽可能多的东西以使您可以以最快的速度掌握XAML

如果您已经使用XAML进行WPF应用程序的开发,我们将讨论的大部份东西您都已经知道(第6章也是如此)。尽管如此,还是会有一些细微的差别:Silverlight不像WPF那样完全支持XAML格式,它只是一个子集。将来的Silverlight版本将进一步增加所支持的元属和属性的比例,但有些工作在桌面应用的功能是不能在浏览器中工作的。

所有XAML文件的根元素都是<Canvas>,在控制Silverlight的地方定义它。<Canvas>元素中的布局元素将在其他章节讲解,现在只需要记住,在每个XAML文件的开头放置<Canvas>元素并赋与正确的命名空间如下:

<Canvas xmlns=http://schemas.microsoft.com/client/2007

??????? xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml>

????

</Canvas>

使用文本

在第一个例子中,使用最多的还是第2章的Hello World示例里的技术。这一章也从一个类似于Hello World的程序开始:我们将在Silverlight内添加一段文字。为此,需要使用<TextBlock>元素(在第2章已经介绍过),有两种显示文本的方法:

l???????? 在元素的Text属性内

l???????? 在元素内使用一个文字节点

4-1使用了后一种方法输出文字。需要注意,在Visual Studio将出现警告<TextBlock>中不能包含文本,但例4-1证明这是被允许的。

4-1:使用简单文本,XAML文件(Text1.xaml

<Canvas xmlns=http://schemas.microsoft.com/client/2007

??????? xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml>

? <TextBlock>Silverlight</TextBlock>

</Canvas>

根据第2章所讲述的Silverlight应用程序的结构,您需要添加两个文件以使得这个例子可以在浏览器中工作。首先需要一个JavaScript辅助文件以初始化Silverlight内容,如例4-2所示。因为这个JavaScript文件依赖于HTML文件,我们把它称之为“HTML code-behind”,它将贯穿本书。在一些例子中将会提到“HTML JavaScript file”文件(跟“XAML Javascript file“文件以示区别,将在下一章介绍)。

4-2:使用简单文本,HTML JavaScript文件(Text1.html.js

function createSilverlight()

{

???? Silverlight.createObjectEx({

???????? source: ‘Text1.xaml’,

???????? parentElement: document.getElementById(‘SilverlightPlugInHost’),

???????? id: ‘SilverlightPlugIn’,

???????? properties: {

????????????? width: ’400′,

????????????? height: ’400′,

????????????? background:‘#ffffff’,

??????????? isWindowless: ‘false’,

????????????? version: ’1.0′

???????? },

???????? events: {

???????? ??? onError: null,

???????? }???????

???? });

}

881016677104714187.jpg

译者注:如果不懂如何运行,请参考我的博客:

http://cgbluesky.blog.163.com/blog/static/241235582008070198710/

并对相应的URL地址进行修改

注意几个高亮的代码元素:

l???????? source属性必须是XAML文件的URL地址

l???????? parentElement属性必须引用控制Silverlight内容的DOM元素

l???????? id属性提供了一个值以使得Silverlight内容可以被JavaScript代码访问(详见第8章)

其次,必须把一个HTML文件做为浏览器载入的主页面。它和“HTML code-behind”文件以及Silverlight.js辅助文件都做为Visual StudioSilverlight SDK插件的一部分被安装(也可以随同本书示例代码一起下载:http://www.oreilly.com/catalog/9780596516116)。HTML页面需要包含<div>容器,并在其中包含跟parentElement属性相同的ID。最后,这个页面需要调用前面定义的createSilverlight()方法。例4-3包括了所有代码,图4-1显示了输出效果。

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”

? “http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd”>

<html xmlns=”http://www.w3.org/1999/xhtml”>

<head>

???? <title>Silverlight</title>

???? <script type=”text/javascript” src=”Silverlight.js”></script>

???? <script type=”text/javascript” src=”Text1.html.js”></script>

</head>

<body>

???? <div id=”SilverlightPlugInHost”>

???????? <script type=”text/javascript”>

????????????? createSilverlight();

???????? </script>

???? </div>

</body>

</html>

提示:很多时候,创建一个新的Silverlight应用程序都从复制粘贴开始。当创建一个新的内容,您需要拷贝HTML文件,HTML的JavaScript文件,XAML文件,如果需要,还有XAML的JavaScript文件。为了对示例能更好地理解,我们将只给出HTML文件。如果在HTML的JavaScript文件中没有其它附加信息,将不再列出它的代码。下载本书的代码也是如此。

4-1显示的是文本的默认布局:文本使用Lucida字体,大小为11,颜色为黑色。字体有可能没有在客户端(或服务器端)安装,它是插件的一部分。因此在Mac OS X操作系统中也显示同样的效果,如图4-2所示。

881016677104714215.jpg

除了Lucida字体外,还有以下几种字体支持跨平台:

l???????? Arial

l???????? Arial Black

l???????? Comic Sans MS

l???????? Courier New

l???????? Georgia

l???????? Times New Roman

l???????? Trebuchet MS

l???????? Verdana

其它字体,甚至已经在客户端安装,也不被支持。如果字体不被支持,Silverlight将使用Lucida

有几种方法改变文字的字体。首先,<TextBlock>的一些属性就派得上用场:

FontFamily

字体的名字(如Arial

FontSize

字体的大小(如12

FontWeight

如何显示字体(如:ThinExtraLightLightNormalMediumSemiBlodBlodExtraBlodBlackExtraBlack;很不幸,智能提示会给您提供其他的错误选项)

您可以很容易地使用<TextBlock>元素中的这些属性。然而如果您喜欢在<TextBlock>中使用不同要格式,可以有不同选项。在<TextBlock>中使用<Run>元素可以提供一个inline格式选项。跟HTML进行对比:<TextBlock>好比<div>元素,<Run>好比<div>中的<span>元素。<div>元素的样式提供了文字的基础布局,但<span>的样式可能会覆盖<div>的样式。

4-4显示了一些样式选项。这里也介绍了一个新的XAML元素:

<LineBreak>元素

这个元素定义了一个换行符

Foregroudn属性

它定义了前景色(这里前景指的是文字)。您可以使用颜色名称(RedGreenBlue等等),也可以使用由三个值组成的RGB颜色(如:#ff0000#00ff00#0000ff ...),还可以使用aRGB颜色。“a”表示透明度:取值范围在000)到255ff)之间,定义了不透明的程度。如果把它设置为00,元素将完全透明(比如背景可见,则元素为不可见)。如果把它设置为ff,则元素将完全不透明,所以您将不能看到背景。如果使用两者之间的一个值,则可以透过元素在一定程度上看到背景。例如,#7fffff00的颜色是黄色(ff0000),它的透明度为50%7f的十进制为127)。

提示:也可以使用Backguound属性设置元素的背景色。

4-3是例4-4在浏览器中输出的效果。

4-4 文字样式,XAML文件(Text2.xaml

<Canvas xmlns=http://schemas.microsoft.com/client/2007

??????? xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml>

? <TextBlock Foreground=Blue FontFamily=Arial FontSize=24 FontWeight=Bold>

??? Arial,24pt,Bold,Blue

??? <LineBreak/>

??? <Run FontSize=36 FontWeight=Light>Arial,36pt,Light,Blue</Run>

??? <LineBreak/>

??? <Run FontFamily=Times New Roman Foreground=#7fffff00>Times New Roman,

????? 24pt,Bold,Yellow</Run>

? </TextBlock>

</Canvas>

?4298685844325555138.jpg

提示:可以在Silverlight应用程序中载入外部的OpenType或TrueType(TTF)字体,这将在第9章讲述。

文字换行

默认情况下,<TextBlock>内的文字不会换行,可以通过设置TextWrapping属性为Wrap来使Silverlight中的指文字进行自动换行。您需要给文本指定一个宽度,如:

<TextBlock Width=200 TextWrapping=Wrap

???????????? Text=This text will not fit in one line. />

TextWrapping属性设置为NoWrap将使文字不会换行,这和默认的情况一样。

绘制图形

大多数标准的可视元素是图形:几何元素使应用程序有了可视化的体验。本章将读者讨论很多的可用选项。

在讨论不同的图形之前,先讲解格式选项。这有几个选项,它们中很多用于指定特定的图形,但下面3个属性在所有图形中通用:

Fill

怎样填充图形的内部,如提供一个颜色

Stroke

怎么绘制图形的轮廓,如提供一个颜色

StrokeThickness

轮廓线的宽度,使用像素做为单位(必须是一个整数)

我们从简单的图形开始:使用XAML<Line>元素来表示一条直线。您需要提供直线的起点和终点并使用Silverlight坐标系统(基于像素,原点为左上角)。相关的属性名称为X1Y1X2Y1,例4-5使用三条直线绘制了一个简单的三角形,图4-4显示了其在浏览器中的输出结果。需要注意,由于轮廓宽度为5,三角形的转角显得并不完美。

4-5 由三条线组成的三角形,XAML文件(Line.xaml

<Canvas xmlns=http://schemas.microsoft.com/client/2007

??????? xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml>

? <Line Stroke=Red StrokeThickness=5 X1=200 Y1=50 X2=350 Y2=250 />

? <Line Stroke=Green StrokeThickness=5 X1=350 Y1=250 X2=50 Y2=250 />

? <Line Stroke=Blue StrokeThickness=5 X1=50 Y1=250 X2=200 Y2=50 />

</Canvas>

(译者注:如果不知道如何运行代码,请参考

http://cgbluesky.blog.163.com/blog/static/241235582008070198710/

4298685844325555167.jpg?

如果您想创建一个封闭的形状,如三角形,四边形等等,最好使用<Polygon>元素,它包含了所有点,在Points属性中,需要提供一组点坐标,使用格式如下:

X1Y1X2Y2X3Y3,...XnYn

绘制算法如下:第1个点连接第2个点,第2个点连接第3个点,依此类推,直到第点n-1连接点n,最后,Silverlight会自动连接点n和点1

提示:如果您希望忽略最后一步,如创建一个不封闭的图形,希望最后一个点跟第一个点不连接,请使用<Polyline>而不是<Polygon>。

No Comments | Tags: ,

迎接一个新的开始

调整一段时间,马上要开始新的生活了……蛮期待的,一个人在家也很无聊,白天面试跑的真累,比上班还要累。不过现在基本确定了,说实话这段调整期,总的来说状态还不错,心情也蛮好的,可是现在快要上班了,感觉好像不是那么爽了……或许是期待过高,自己没有完成目标吧,也或许是这懒散的生活马上就要结束了,舍不得吧……也或许对未来的期待吧。总之我要给自己提几点要求:

  1. 在新的工作环境中一定要改变自己的工作态度,不挑剔工作,不抱怨工作。
  2. 在新的公司中,要多方位的思考,我不单单是一个员工,我可能是leader,manager,or boss。要给自己换不同的角色,给自己多一点的心得。
  3. 个人生活方面一定要注重的仪表,不要自己的邋遢找理由。
  4. 要学会调整自己的状态,用吸引力法则,给自己一个好心情,好运气……
  5. 学会期待,学会梦想成真
  6. 努力保持每天的好心情,多微笑,因为没有人会拒绝微笑,没有人拒绝快乐……
  7. 闲的时候尽量少看电视,多看一些书!

就先提这些要求,郭广太努力啊!耶!

2 Comments | Tags: ,

又认识了几个朋友

??????? 今天又认识了几个朋友,说来话长,上个周末跟同事一起玩,晚上回来的路上,我捡到了一个钱包,第二天,我就按着身份证上的地址给别人送了过去,这不今天吗?别人非又请我吃饭,是几个运动员,感觉还像学生似的,关系很单纯,蛮羡慕的,又让我想起了我们上学的那个时候,很铁的哥们,羡慕……今天还去了一个花样体操队的女教练,比我大十二岁,可感觉还像个小孩似的,很开朗,蛮逗的一个人,像个大男孩……不过说实话他们的生活让我感到蛮好奇的,他们邀请我去看他们训练,我也很期待,说实话我蛮喜欢去看花样体操,看那么好看的动作,要付出多大的努力!期待中……

?????到目前为止我已经认识三个新朋友,确切说是5个,感觉蛮有意思,红霞姐,是做培训,健康心理,感觉很有智慧的人,从红霞姐这里我学到了,人的生活要积极,心里装的只能是正面的思想,学会调节自己的心态,学会用秘密法则,时刻保持一个乐观,快乐的心态。而今天的张姐,高伟浩他们,很单纯,蛮有意思,很让人羡慕的,不知道今年还能认识多少朋友,努力啊,争取认识更多的朋友。

No Comments | Tags: ,

IE8beat1可以下载了

IE8beat1可以下载了

下载地址:http://www.microsoft.com/windows/products/winfamily/ie/ie8/default.mspx

喜欢尝鲜的朋友可以下载用一下!

No Comments | Tags: , ,