Silverlight入门教程(基于Asp.net运行环境示例)[示例代码下载]

 
 
Silverlight 入门教程
-- 基于 Asp.net 运行环境示例 
 
 
 

 
(一).概述 
(二). 代码示例 
 1).基础知识示例 
  1. 对象的定位 
  2. 使用SilverLight插件 
  3. SilverLight元素的鼠标事件 
  4. SilverLight元素的键盘事件 
  5. 方法createFromXaml使用示例 
  6. 访问和修改Silverlight元素以及属性 
  7. Silverlight中的字体使用 
  8. 全屏支持功能 
  9. Silverlight Downloader 对象使用 
  10.定时器功能 
  11.错误处理支持 
  12.把xaml段内置在aspx或html页面中 
 2).制作图形示例 
  13.基本图形形状示例 
  14.画刷对象的使用 
  15.视频刷对象的使用 
  16.Path元素使用 
  17.变换效果(Transform) 
 3).多媒体功能 
  18.在线电影播放 
 4).制作动画效果示例 
  19.一个动画示例 
  20.动画的交互控制
  21.动画关键帧示例
 

Silverlight是一个跨浏览器的、跨操作系统平台的插件,为Web带来下一代媒体体验和丰富的交互式应用程序体验. 使用JS实现Ajax技术可以使网站具有很好的用户体验, 但它也会使网站过于庞大和臃肿. 业余时间学习了一下微软的 Silverlight官方教程, 在学习时顺便根据学习示例整理了一个教程. 此教程包括一些精简的小例子, 主要针对开发使用场景展开示例, 在实际开发中也可以作为查找手册使用. 运行环境为VS 2005, 这些示例比较简单很容易看懂, 因此示例没有太多注释.
                                                   Author:【夜战鹰】【ChengKing(ZhengJian)】
( 二). 代码示例
1). 基础知识示例
1. 对象的定位
    通过呈现几个 Silverlight元素来示例对象之间的定位, 以及在一个页面中创建装载多个Silverlight对象.
I. 页面代码 (Default.aspx)
< html xmlns="http://www.w3.org/1999/xhtml" >
< head runat="server">
    <title>Silverlight 对象的定位</title>   
    <script type="text/javascript" src="../Silverlight.js"></script>
    <script type="text/javascript" src="Default.aspx.js"></script>
</ head >
< body >
    <form id="form1" runat="server">       
        <div id="SilverlightControlHost1" >
            <script type="text/javascript">
                createSilverlight1();
            </script>
        </div>
        <hr>
         <div id="SilverlightControlHost2" >
            <script type="text/javascript">
                createSilverlight2();
            </script>
        </div>
        <hr>
        <div id="SilverlightControlHost3" >
            <script type="text/javascript">
                createSilverlight3();
            </script>
        </div>
        <hr>
        <div id="SilverlightControlHost4" >
            <script type="text/javascript">
                createSilverlight4();
            </script>
        </div>
        <hr>
        <div id="SilverlightControlHost5" >
            <script type="text/javascript">
                createSilverlight5();
            </script>
        </div>
    </form>
</ body >
</ html >
II. 页面对应的 JS文件代码(Default.aspx.js)
// 创建对象
function createSilverlight1()
{
     Silverlight.createObjectEx({
         source: "Page1.xaml",
         parentElement: document.getElementById("SilverlightControlHost1"),
         id: "SilverlightControl1",
         properties: {
              width: "350",
              height: "350",
              version: "1.0"
              background: "white",
              isWindowless: "true",
              enableHtmlAccess: "true"            
         },
         events: {}
     });
}
 
function createSilverlight2()
{
     Silverlight.createObjectEx({
         source: "Page2.xaml",
         parentElement: document.getElementById("SilverlightControlHost2"),
         id: "SilverlightControl2",
         properties: {
              width: "350",
              height: "350",
              version: "1.0"
              background: "white",
              isWindowless: "true",
              enableHtmlAccess: "true"            
         },
         events: {}
     });
}
 
function createSilverlight3()
{
     Silverlight.createObjectEx({
         source: "Page3.xaml",
         parentElement: document.getElementById("SilverlightControlHost3"),
         id: "SilverlightControl3",
         properties: {
              width: "350",
              height: "350",
              version: "1.0"
              background: "white",
              isWindowless: "true",
              enableHtmlAccess: "true"            
         },
         events: {}
     });
}
 
function createSilverlight4()
{
     Silverlight.createObjectEx({
         source: "Page4.xaml",
         parentElement: document.getElementById("SilverlightControlHost4"),
         id: "SilverlightControl4",
         properties: {
              width: "350",
              height: "350",
              version: "1.0"
              background: "white",
              isWindowless: "true",
              enableHtmlAccess: "true"            
         },
         events: {}
     });
}
 
function createSilverlight5()
{
     Silverlight.createObjectEx({
         source: "Page5.xaml",
         parentElement: document.getElementById("SilverlightControlHost5"),
         id: "SilverlightControl5",
         properties: {
              width: "350",
              height: "350",
              version: "1.0"
              background: "white",
              isWindowless: "true",
              enableHtmlAccess: "true"            
         },
         events: {}
     });
}
III.Xaml文件代码
1. Page1.xaml代码
< Canvas
     xmlns = "http://schemas.microsoft.com/client/2007"
     xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
     Width = "640"Height="480"
     Background = "LightGreen"  
  Canvas.Left = "10"
  Canvas.Top = "10"
     >
 < Rectangle Canvas.Left = "30"Canvas.Top="30"Fill="LightBlue"  
     Width = "200"Height="200" />
</ Canvas >
2. Page2.xaml代码
< Canvas
     xmlns = "http://schemas.microsoft.com/client/2007"
     xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
     Width = "300"Height="300"
     Background = "White">
 
 < Canvas Width = "250"Height="250"Canvas.Left="30"Canvas.Top="30"Background="LightBlue">
 
    < Rectangle Canvas.Left = "30"Canvas.Top="30"Fill="LightGreen"
       Width = "200"Height="200" />
 </ Canvas >
</ Canvas >
3. Page3.xaml代码
< Canvas
     xmlns = "http://schemas.microsoft.com/client/2007"
     xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
     Width = "300"Height="300"
     Background = "White">
 
 < Line X1 = "280"Y1="10"X2="10"Y2="280"
      Stroke = "Blue"StrokeThickness="5"/>
 
  < Polyline Points = "150, 150 150, 250 250, 250 250, 150"
      Stroke = "Yellow"StrokeThickness="10"/>
 
 
 < Path Data = "M 10,100 C 10,300 300,-200 250,100z"
      Stroke = "Red"Fill="Orange"
      Canvas.Left = "10"Canvas.Top="10" />
 
</ Canvas >
4. Page4.xaml代码
< Canvas
  xmlns = "http://schemas.microsoft.com/client/2007"
  xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
  Width = "200"Height="200">
 < Rectangle
    Canvas.Left = "100"Canvas.Top="100"
    Width = "50"Height="50"
    Fill = "RoyalBlue">
    < Rectangle.RenderTransform >
      < RotateTransform Angle = "45" />
    </ Rectangle.RenderTransform >
 </ Rectangle >
</ Canvas >
5. Page5.xaml代码
< Canvas
    xmlns = "http://schemas.microsoft.com/client/2007"
    xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml">
 
 < Ellipse
      Canvas.ZIndex = "3"
      Canvas.Left = "5"Canvas.Top="5"
      Height = "200"Width="200"
      Stroke = "Black"StrokeThickness="10"Fill="Silver" />
 
 < Ellipse
      Canvas.ZIndex = "2"
      Canvas.Left = "50"Canvas.Top="50"
      Height = "200"Width="200"
      Stroke = "Black"StrokeThickness="10"Fill="DeepSkyBlue" />
 
 < Ellipse
      Canvas.ZIndex = "1"
      Canvas.Left = "95"Canvas.Top="95"
      Height = "200"Width="200"
      Stroke = "Black"StrokeThickness="10"Fill="Lime" />
 
</ Canvas >
 
2. 使用SilverLight插件
I. 页面代码 (Default.aspx)
< html xmlns="http://www.w3.org/1999/xhtml" >
< head runat="server">
    <title> 访问Silverlight插件</title>   
    <script type="text/javascript" src="../Silverlight.js"></script>
    <script type="text/javascript" src="Default.aspx.js"></script>
</ head >
< body onload="document.getElementById('SilverlightControlHost').focus()">
    <form id="form1" runat="server">
        <div id="SilverlightControlHost" >
            <script type="text/javascript">
                createSilverlight();
            </script>
        </div>
    </form>
</ body >
</ html >
II.Xaml文件代码
< Canvas Name = "parentCanvas"
         Opacity = "0"
        xmlns = "http://schemas.microsoft.com/client/2007"
        xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
         Loaded = "onLoaded"MouseLeftButtonDown="MouseLeftButtonDown"
        >
 
 < Canvas.Triggers >
         < EventTrigger RoutedEvent = "Canvas.Loaded">
              < EventTrigger.Actions >
                   < BeginStoryboard >
                       < Storyboard >
                            < DoubleAnimation Storyboard.TargetName = "parentCanvas"Storyboard.TargetProperty="Opacity"From="0"To="1"Duration="0:0:5"/>
                       </ Storyboard >
                   </ BeginStoryboard >
              </ EventTrigger.Actions >
         </ EventTrigger >
     </ Canvas.Triggers >
 
     < TextBlock Name = "helloBlock"Foreground="Black"Cursor="Hand"Text="King" />
</ Canvas >
III.页面对应的 JS文件代码(Default.aspx.js)
function createSilverlight()
{   
     Silverlight.createObjectEx({
         source: "Page.xaml",
         parentElement: document.getElementById("SilverlightControlHost"),
         id: "SilverlightControl",
         properties: {
              width: "350",
              height: "350",
              version: "1.0"
              background: "white",
              isWindowless: "true",
              enableHtmlAccess: "true"            
         },
         events: {onLoad:onLoad}
     });
}
 
// 判断当前安装插件的版本
function onLoaded(sender, eventArgs)
{
    var version = "1.1";
    var isInstalled = Silverlight.isInstalled(version);
    alert(isInstalled);      
}
 
// 访问运行中插件
function MouseLeftButtonDown(sender, mouseEventArgs)
{
    var plugin = sender.getHost();   
   
    alert("Silverlight V1.1 supported: " + plugin.isVersionSupported("1.1"));//plugin
    alert("IsLoaded: " + plugin.IsLoaded);//plugin
   
    alert("Background: " + plugin.Settings.Background); //plugin.Settings
   
    alert("ActualHeight: " + plugin.Content.ActualHeight );//plugin.Content      
}
 
function onLoad(plugin, userContext, sender)
{
    alert(plugin.id + " : " + userContext + " : " + sender.toString());
}
 
 
3. SilverLight 元素的鼠标事件
I.鼠标滑入和滑出事件
I. 页面代码 (Default.aspx)
< html xmlns="http://www.w3.org/1999/xhtml" >
< head runat="server">
    <title>Silverlight 元素的鼠标进入/离开事件</title>   
    <script type="text/javascript" src="../../Silverlight.js"></script>
    <script type="text/javascript" src="Default.aspx.js"></script>
</ head >
< body onload="document.getElementById('SilverlightControlHost').focus()">
    <form id="form1" runat="server">
        <div id="SilverlightControlHost" >
            <script type="text/javascript">
                createSilverlight();
            </script>
        </div>
    </form>
</ body >
</ html >
II.Xaml文件代码
< Canvas
  xmlns = "http://schemas.microsoft.com/client/2007"
  xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
  Loaded = "onLoaded">
 
 < Ellipse
    MouseEnter = "onMouseEnter"
    MouseLeave = "onMouseLeave"
    Height = "100"Width="100"
    Fill = "Teal"Name="Ellispse1" />
 
 < Ellipse
    MouseEnter = "onMouseEnter"
    MouseLeave = "onMouseLeave"
    Canvas.Left = "120"
    Height = "100"Width="100"
    Fill = "Teal"Name="Ellispse2" />
 
 < TextBlock Name = "Status"Canvas.Top="120" />
 
 < TextBlock Name = "RemoveClickEvent"Canvas.Top="250"Text="Click Me Remove Mouse Click Event"MouseLeftButtonDown="onMouseDownRemoveEvent" /> 
</ Canvas >
 
III.页面对应的 JS文件代码(Default.aspx.js)
function createSilverlight()
{  
     Silverlight.createObjectEx({
         source: "Page.xaml",
         parentElement: document.getElementById("SilverlightControlHost"),
         id: "SilverlightControl",
         properties: {
              width: "350",
              height: "350",
              version: "1.0"
              background: "white",
              isWindowless: "true",
              enableHtmlAccess: "true"            
         },
         events: {}
     });
}
 
function onMouseEnter(sender, mouseEventArgs)
{
    sender.fill = "Coral";
}
function onMouseLeave(sender, eventArgs)
{
    sender.fill = "Teal";
}
 
var entertoken1, entertoken2,entertoken1,entertoken2;
function onLoaded(sender, eventArgs)
{
    Ellispse1 = sender.findName("Ellispse1");
    Ellispse2 = sender.findName("Ellispse2");
    entertoken1 = Ellispse1.addEventListener("MouseLeftButtonUp", onMouseLeftButtonUp);   
    entertoken2 = Ellispse2.addEventListener("MouseLeftButtonUp", onMouseLeftButtonUp);   
}
function onMouseLeftButtonUp(sender, mouseEventArgs)
{   
    var pt = mouseEventArgs.getPosition(null);   
    sender.findName("Status").text = "(" + pt.x + "," + pt.y + ")";
}
 
function onMouseDownRemoveEvent(sender, mouseEventArgs)
{
    Ellispse1.removeEventListener("MouseLeftButtonUp", entertoken1);
    Ellispse2.removeEventListener("MouseLeftButtonUp", entertoken2);
}
 
 
II.鼠标点击 (按下/弹起)和移动事件
I. 页面代码 (Default.aspx)
< html xmlns="http://www.w3.org/1999/xhtml" >
< head runat="server">
    <title>Silverlight 元素的鼠标点击/移动事件</title>   
    <script type="text/javascript" src="../../Silverlight.js"></script>
    <script type="text/javascript" src="Default.aspx.js"></script>
</ head >
< body onload="document.getElementById('SilverlightControlHost').focus()">
    <form id="form1" runat="server">
        <div id="SilverlightControlHost" >
            <script type="text/javascript">
                createSilverlight();
            </script>
        </div>
    </form>
</ body >
</ html >
II.Xaml文件代码
< Canvas xmlns = "http://schemas.microsoft.com/client/2007"
  xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
  MouseLeftButtonDown = "onMouseDown"
  MouseLeftButtonUp = "onMouseUp"
  MouseMove = "onMouseMove"
  Canvas.Top = "20"Canvas.Left="50">
    < Ellipse
      Height = "100"Width="100"
      Fill = "Gold"
      Stroke = "Black"StrokeThickness="4" />
    < Ellipse
      Height = "50"Width="50"
      Canvas.Top = "25"Canvas.Left="25"
      Fill = "Black" /> 
    < Canvas
      MouseLeftButtonDown = "onMouseDown"
      MouseLeftButtonUp = "onMouseUp"
      MouseMove = "onMouseMove"
      Canvas.Top = "140"Canvas.Left="100">
      < Canvas.RenderTransform >
        < RotateTransform Angle = "45" />
      </ Canvas.RenderTransform >
      < Rectangle
        Height = "100"Width="100"
        Fill = "Coral"
        Stroke = "Black"StrokeThickness="4" />
    </ Canvas >
</ Canvas >
 
III.页面对应的 JS文件代码(Default.aspx.js)
function createSilverlight()
{   
     Silverlight.createObjectEx({
         source: "Page.xaml",
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值