今日您是第次访问
设为主页
添加改藏
网站优化
 
了解WPF技术
Silverlight WPF/E教程
WPF应用程序教程
当前位置:网站主页->Silverlight教程->文章浏览

Silverlight 2.0 实现鼠标滚动3D球多级图片缩放

日期:2008-4-28   作者:天使坠

实例来自“天使坠”,由灵代写介绍之:

         主要核心使用.Net Silverlight SDK的类库中委托语言如(C#)与浏览器的交互之事件灵活使用,初始化绑定了鼠标的事件,包括拖动和3D球等使用。也许您和由灵有同样的困惑,为什么使用DOMMouseScroll、onmousewheel两个事件来绑定鼠标的3D球事件,为适应各种浏览器,DOMMouseScroll是FireFox等浏览器中支持,而onmousewheel是在Microsoft Internet Explorer浏览器中支持,代码如下:

     HtmlPage.Window.AttachEvent("DOMMouseScroll", this.HandleMouseWheel);
     HtmlPage.Window.AttachEvent("onmousewheel", this.HandleMouseWheel);
     HtmlPage.Document.AttachEvent("onmousewheel", this.HandleMouseWheel);

private void HandleMouseWheel(object sender, HtmlEventArgs args) {
    double delta = 0;

    ScriptObject eventObj = args.EventObject;

    if (eventObj.GetProperty("wheelDelta") != null) {
     delta = ((double)eventObj.GetProperty("wheelDelta")) /120;


     if (HtmlPage.Window.GetProperty("opera") != null)
      delta = -delta;
    }
    else if (eventObj.GetProperty("detail") != null) {
     delta = -((double)eventObj.GetProperty("detail"))/3;

     if (HtmlPage.BrowserInformation.UserAgent.IndexOf("Macintosh") != -1)
      delta = delta * 3;
    }

    if (delta != 0 && this.Moved != null) {
     MouseWheelEventArgs wheelArgs = new MouseWheelEventArgs(delta);
     this.Moved(this, wheelArgs);

     if (wheelArgs.Handled)
      args.PreventDefault();
    }
   }