Silverlight控件相关操作技巧讲解

Silverlight工具中内置了很多种控件。开发人员使用这些Silverlight控件可以轻松的完成界面图形的操作,以及一些音频视频的相关操作。Silverlight的界面是通过控件套用控件来改变页面的布局与实现体验者的视觉效果的。本文介绍Silverlight即时显示JavaScript程序的状态,详细介绍JavaScript实现对Silverlight的控件访问、修改、删除、创建。#t#

成都创新互联公司是一家集网站建设,南岗企业网站建设,南岗品牌网站建设,网站定制,南岗网站建设报价,网络营销,网络优化,南岗网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

提示:对控件进行操作,如果在控件的onLoad之前访问和操作都会出现异常!,是因为找不到对象。

下面的Silverlight控件实例是JavaScript循环创建动画的效果,显示内容可以随意改变。控件的格式是XAML中定义的TextBlock(文本控件),包括Animation创建,添加,和删除等功能。

变量说明:

  1. var txtFormat=new _textBlock(); 
    //字体格式对象
  2. var writeText="Welcom to WPF.COM!";
    //运画显示内容
  3. var CanvasLeft=0; 
    //随环改变
  4. var CanvasTop=0; 
    //加载的XAML中的高度位置
  5. var charIndex=0; 
    //显示的字符索引
  6. var split_width=15; 
    //每一个字符的宽度,可以对此智能改变
  7. var _silverlight_c; 
    //指定的Silverlight控件对象

在Page.xaml.js文件中创建了_textBlock类,使用此类记录textBlock中的格式,大小信息。

 
 
 
  1. function _textBlock()
  2. {
  3. this.fontFamily="";
  4. this.width=0;
  5. this.height=0;
  6. this.textWrapping="Wrap";
  7. this.fontSize=0.0;
  8. }
  9. var txtFormat=new _textBlock();

Silverlight控件在onLoad事件中加载了XAML中的格式,并把样式控件删除,并且调用了显示动画的方法(goAnimation)。

 
 
 
  1. handleLoad: function(control, 
    userContext, rootElement) 
  2. {
  3. this.control = control;
  4. _silverlight_c=control;
  5. var tStyle=control.content.
    findName("tStyle");
  6. for(var i in txtFormat)
  7. {
  8. txtFormat[i]=tStyle[i];
  9. }
  10. CanvasLeft=tStyle["Canvas.Left"];
  11. CanvasTop=tStyle["Canvas.Top"];
  12. control.content.root.children.
    remove(tStyle);
  13. tStyle=null;
  14. goAnimation();

下面是goAnimation的代码:

 
 
 
  1. function goAnimation(){
  2. if(charIndex
  3. {
  4. var this_char=writeText.substr(charIndex,1);
  5. if(this_char!=" ")
  6. {
  7. var t_control=_silverlight_c.content.
    createFromXaml('schemas.microsoft.com/winfx/2006/xaml" 
    Text="Hello" x:Name="t'+charIndex+'">
  8. ');
  9. CanvasLeft+=split_width;
  10. for(var i in txtFormat){t_control[i]=txtFormat[i];}
  11. t_control["Canvas.Top"]=-20;
  12. t_control["Canvas.Left"]=CanvasLeft;
  13. t_control.foreground="#ffffffff";
  14. t_control.Text=this_char;
  15. _silverlight_c.content.root.children.add(t_control);
  16. var storyboard_str='schemas.microsoft.com/winfx/2006/xaml" 
    x:Name="animation'+charIndex+'">';
  17. storyboard_str+='BeginTime="00:00:00" Storyboard.TargetName=
    "t'+charIndex+'" Storyboard.TargetProperty=
    "(UIElement.RenderTransform).(TransformGroup.
    Children)[2].(RotateTransform.Angle)">';
  18. storyboard_str+='KeySpline="0.091,0.532,1,1" KeyTime="00:00:00.
    6000000" Value="-360"/>';
  19. storyboard_str+="";
  20. storyboard_str+='BeginTime="00:00:00" Storyboard.TargetName=
    "t'+charIndex+'" Storyboard.TargetProperty="
    (UIElement.RenderTransform).(TransformGroup.
    Children)[3].(TranslateTransform.Y)">';
  21. storyboard_str+='KeySpline="0.091,0.532,1,1" KeyTime="00:00:00.
    6000000" Value="'+CanvasTop+'"/>';
  22. storyboard_str+='';
  23. storyboard_str+='BeginTime="00:00:00" Storyboard.TargetName=
    "t'+charIndex+'" Storyboard.TargetProperty="
    (UIElement.Opacity)">';
  24. storyboard_str+='KeyTime="00:00:00" Value="0.055"/>';
  25. storyboard_str+='KeyTime="00:00:00.6000000" Value="1"/>';
  26. storyboard_str+='';
  27. storyboard_str+=""; 
  28. var storyboard_control=_silverlight_c.
    content.createFromXaml(storyboard_str);
  29. t_control.Resources.add(storyboard_control);
  30. storyboard_control.begin();
  31. }
  32. CanvasLeft+=split_width;
  33. charIndex++;
  34. setTimeout("goAnimation()",100);
  35. }
  36. }

使用content.createFromXaml方法创建Silverlight中的对象。

使用content.findName 利用x:Name查找名称对象

使用silverlight_control.children.add添加控件。

使用silverlight_control.Resources.add添加StoryBoard动画对象(Storyboard)。
storyboard_obj.Begin播放。

Silverlight控件的具体操作方法就为大家介绍到这里。

分享名称:Silverlight控件相关操作技巧讲解
本文URL:http://www.shufengxianlan.com/qtweb/news37/85537.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联