用silverlight做了一个小的放大缩小的小demo,共享给大家

          我们在看很多silverlight的showcase的时候有很多放大缩小的例子,在1.0的时候都是用js来操作,silverlight2.0出来以后,我们可以用managed code 来操作.

在本例中,我们采用javascript来操作managed code,关于这个具体是什么样用法我会在以后的silverlight文章中给大家做例子,现在我们先看这个是怎么做出来的
首先我们利用vs2008创建一个silverlight应用程序,命名为 silverlightZoom,然后我们page.xml里面放个图片代码如下:
 1 < UserControl  x:Class ="silverlightZoom.Page"
 2     xmlns ="http://schemas.microsoft.com/client/2007"  
 3     xmlns:x ="http://schemas.microsoft.com/winfx/2006/xaml"  
 4     Width ="400"  Height ="300" >
 5      < Canvas >
 6
 7          < Canvas.RenderTransform >
 8
 9              < ScaleTransform  x:Name ="ZoomTransform"   />
10
11          </ Canvas.RenderTransform >
12          < Image  Source ="01.jpg"  x:Name ="img" ></ Image >
13      </ Canvas >
14
15
16 </ UserControl >
下一步我们想增加放大缩小的方法,1.0的时候我们要写javascript,2.0里我们应该怎么做呢。ok,打开page.xmal.cs页面
增加下面的代码:
注意:要加上 using System.Windows.Browser;
 1    [ScriptableMember()]
 2          public   void  ZoomIn()
 3          {
 4
 5            ZoomTransform.ScaleX += 0.1;
 6
 7            ZoomTransform.ScaleY += 0.1;
 8
 9        }

10
11         [ScriptableMember()]
12
13          public   void  ZoomOut()
14          {
15
16            ZoomTransform.ScaleX -= 0.1;
17
18            ZoomTransform.ScaleY -= 0.1;
19
20        }
现在我们已经添加了放大缩小方法,下一步,我们要实现鼠标滚轮的时候图片放大缩小,所以我们要在 silverlightZoomTestPage.aspx这个页面增加javascript方法来判断,代码如下:
 1    var  _control;
 2  
 3
 4 function  onLoad(sender)
 5
 6 {
 7
 8    _control =sender.get_element();
 9
10    if (window.addEventListener)
11
12        window.addEventListener('DOMMouseScroll',
13
14            OnMouseWheelTurned, false);
15
16    window.onmousewheel = document.onmousewheel =
17
18        OnMouseWheelTurned;
19
20}

21
22
接下来再这个js后面增加调用托管代码的javascript方法:
 1 function  OnMouseWheelTurned(event)
 2
 3 {
 4
 5    var delta = 0;
 6
 7    if (!event)
 8
 9        event = window.event;
10
11 
12
13    if (event.wheelDelta)
14
15    {
16
17        delta = event.wheelDelta;
18
19        if (window.opera)
20
21            delta = -delta;
22
23    }

24
25    else if (event.detail)
26
27        delta = -event.detail;
28
29 
30
31    if (delta)
32
33    {
34
35        if (delta > 0)
36
37            _control.content.magic.ZoomIn();
38
39        else
40
41            _control.content.magic.ZoomOut();
42
43    }

44
45 
46
47    if (event.preventDefault)
48
49        event.preventDefault();
50
51    event.returnValue = false;
52
53}

下一步,我们要在程序运行的时候把我们前面定义的托管方法注册到js里面,这样在load的时候才能够找到,打开app.xml.cs页面增加下面的代码:
  private   void  Application_Startup( object  sender, StartupEventArgs e)
        
{
            
// Load the main control
            this.RootVisual = new Page();
            HtmlPage.RegisterScriptableObject(
"magic", RootVisual);

        }
最后我们在aspx页面的plugin里面增加onpluginloaded方法如下:
    < div   style ="height:100%;" >
            
< asp:Silverlight  ID ="Xaml1"  OnPluginLoaded ="onLoad"  runat ="server"  Source ="~/ClientBin/silverlightZoom.xap"  Version ="2.0"  Width ="100%"  Height ="100%"   />
        
</ div >

好了,f5运行一下看看吧,呵呵
代码下载地址: www.crfly.com/ silverlightZoom.rar

转载于:https://www.cnblogs.com/liefeng123/archive/2008/04/09/1145592.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的HTML5百科页面代码: ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>HTML5百科</title> </head> <body> <header> <h1>HTML5百科</h1> </header> <nav> <ul> <li><a href="#introduction">介绍</a></li> <li><a href="#semantics">语义</a></li> <li><a href="#multimedia">多媒体</a></li> <li><a href="#forms">表单</a></li> <li><a href="#performance">性能</a></li> </ul> </nav> <main> <section id="introduction"> <h2>介绍</h2> <p>HTML5是一种用于创建网页和应用程序的标准,它是HTML的第五个主要版本。</p> <p>HTML5提供了更好的语义,多媒体,表单和性能等方面的功能,使得开发者能够更加容易地创建丰富多彩的网站和应用程序。</p> </section> <section id="semantics"> <h2>语义</h2> <p>HTML5引入了许多新的元素,如<header>,<footer>,<article>和<aside>,这些元素使得开发者能够更容易地为网站和应用程序添加语义。</p> </section> <section id="multimedia"> <h2>多媒体</h2> <p>HTML5支持视频和音频的嵌入,而不需要使用第三方插件,如Flash或Silverlight。</p> </section> <section id="forms"> <h2>表单</h2> <p>HTML5引入了新的表单控件,如日期选择器,搜索框,颜色选择器等,使得开发者能够更容易地创建交互式表单。</p> </section> <section id="performance"> <h2>性能</h2> <p>HTML5通过引入新的API(如Web Workers和Web Sockets)和改进现有的API(如Canvas)来提高性能和响应速度。</p> </section> </main> <footer> <p>版权所有 © 2021 HTML5百科</p> </footer> </body> </html> ``` 这个页面包含了一个标题、导航、主要内容和页脚。其中,主要内容部分包括了介绍、语义、多媒体、表单和性能等方面的内容。这个页面还使用了HTML5的新元素,如<header>、<footer>、<article>和<aside>等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值