实例来自“天使坠”,由灵代写介绍之:
主要核心使用.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(); } }
|