网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > Silverlight > 正文

Silverlight自定义splashpage

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

最近做silverlight的项目,leader要求实现一个自定义的load界面(splash page),google了之后,发现silverlight提供了相应的接口,developer可以轻松地实现splash page。

silverlight自带的splash page的load界面如下所示:

原因:为什么不使用silverlight自带的loading界面呢,1)太大众化,基本上所有的silverlight应用程序都使用这个界面;2)界面加载的百分比不是很准确。

实现步骤:

 

1)新建silverlight工程,命名SplashScreenSource。

2)右键点击SplashScreenSource.Web方案文件->添加新项->选择silverlight JScript Page->命名为SplashScreen.xaml。并将以下代码替换其中的代码:

 

  1. <Canvas 
  2.         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
  3.         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
  4.         x:Name="parentCanvas"  
  5.         Width="850" 
  6.         Height="600" 
  7.         Background="OldLace" 
  8.         > 
  9.   <Canvas Canvas.Top="228.834" Canvas.Left="246.329" Width="357" Height="31.379"> 
  10.     <Rectangle Width="27.545" Height="1" x:Name="uxProgress" Canvas.Top="29.545" Canvas.Left="1.4"> 
  11.     <Rectangle.RenderTransform> 
  12.       <TransformGroup> 
  13.         <ScaleTransform x:Name="uxProgressBar" ScaleX="1" ScaleY="0"/> 
  14.         <SkewTransform AngleX="0" AngleY="0"/> 
  15.         <RotateTransform Angle="270"/> 
  16.         <TranslateTransform X="0" Y="0"/> 
  17.       </TransformGroup> 
  18.     </Rectangle.RenderTransform> 
  19.     <Rectangle.Fill> 
  20.       <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5"> 
  21.         <GradientStop Color="#FFFFFFFF" Offset="1"/> 
  22.         <GradientStop Color="#FFFFFFFF" Offset="0"/> 
  23.         <GradientStop Color="#FF2975D0" Offset="0.28"/> 
  24.         <GradientStop Color="#FF2975D0" Offset="0.72"/> 
  25.       </LinearGradientBrush> 
  26.     </Rectangle.Fill> 
  27.   </Rectangle> 
  28.  
  29.   <TextBlock x:Name="uxStatus" Height="25" Canvas.Left="125" Text="Loading..." TextWrapping="Wrap" Canvas.Top="4.16"/> 
  30.  
  31.   <Path Width="356.85" Height="1" Fill="#FF3A3A3A" Stretch="Fill" Stroke="#FF000000" Canvas.Top="0" Data="M0,170.5 L356.84209,170.5" Opacity="0.35"/> 
  32.   <Path Width="1.662" Height="29.03" Fill="#FF3A3A3A" Stretch="Fill" Stroke="#FF000000" Canvas.Top="0.48" Canvas.Left="0.2" Data="M360,168 L360,0" Opacity="0.35" /> 
  33.  
  34.   <Path Width="357.84" Height="1" Fill="#FF3A3A3A" Stretch="Fill" Stroke="#FF000000" Canvas.Top="29" Data="M0,170.5 L356.84209,170.5" Opacity="0.35"/> 
  35.   <Path Width="358.85" Height="1" Fill="#FFA2A2A2" Stretch="Fill" Stroke="#FF000000" Canvas.Top="30" Data="M0,170.5 L356.84209,170.5" Opacity="0.25"/> 
  36.   <Path Width="1.662" Height="30" Fill="#FF3A3A3A" Stretch="Fill" Stroke="#FF000000" Canvas.Left="356.01" Data="M360,168 L360,0" Opacity="0.35" Canvas.Top="-0.498"/> 
  37.   <Path Width="1" Height="31" Fill="#FFA2A2A2" Stretch="Fill" Stroke="#FF000000" Canvas.Left="357.333" Data="M360,168 L360,0" Opacity="0.245" Canvas.Top="-0.498" />   
  38. </Canvas> 
  39. </Canvas> 

 

3)在SplashScreenSource.aspx文件中添加:

  1. <param name="splashscreensource" value="SplashScreen.xaml"/> 
  2. <param name="onSourceDownloadProgressChanged" value="onSourceDownloadProgressChanged" /> 

4)继续添加:

  1. <script type="text/javascript" src="splashscreen.js"></script> 

5)在SplashScreen.js中添加:

  1. sender.findName("uxProgressBar").ScaleY = eventArgs.progress * 356; 
  2. sender.findName("uxStatus").Text = "Loading: " + Math.round((eventArgs.progress * 1000)) / 10 + "%"

至此,一个自定义的loading界面就完成了。
问题解决:
1)在进行上面第一,二步骤的时候可能出现如下错误:
Project file must include the .NET Framework assembly …
解决方案:

Change:

  1. <Page Include="ClientBin\Themes\GreenGardenTheme.xaml" >   <SubType>Designer</SubType>   <Generator>MSBuild:Compile</Generator> </Page > 
  2. To: 
  3.   
  4. <Content Include="ClientBin\Themes\GreenGardenTheme.xaml" >  </Content> 

2)运行时看不见自定义的loading界面,原因是xap包不够大,载入时间没有达到0.5秒。
解决方案:
(1)放一个足够大的视频文件在clientBin下面,并且把加载属性设置为content。
(2)使用Fiddler来增加接收请求的时间。

设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师