silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了silverlight 2 事件变化大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

在silverlight2中,事件的处理发生了些变化,类似button,togglebutton等控件的MouSELEftButtonDown,MouSELEftButtonUp等事件已经在类的级别设置为已处理,因此这些类的实例不会再响应这两个事件,当然我们有时候依然要用到这两个事件,解决的方法也很简单。我们需要重载这些类的OnMouSELEftButtonDown和OnMouSELEftButt

在silverlight2中,事件的处理发生了些变化,类似button,togglebutton等控件的MouSELEftButtonDown,MouSELEftButtonUp等事件已经在类的级别设置为已处理,因此这些类的实例不会再响应这两个事件,当然我们有时候依然要用到这两个事件,解决方法也很简单。我们需要重载这些类的OnMouSELEftButtonDown和OnMouSELEftButtonUp方法来设置已处理的标志为未处理就可以了。

  1. public class ActivityControl : Button
  2.     {
  3.         private bool _isMouseDown = false;
  4.         private Point _oldPoint;
  5.         public ActivityType ActivityType { getset; }
  6.         public ActivityControl()
  7.         {
  8.             this.MouSELEftButtonDown += new MouseButtonEventHandler(ActivityControl_MouSELEftButtonDown);
  9.             this.MouSELEftButtonUp += new MouseButtonEventHandler(ActivityControl_MouSELEftButtonUp);
  10.             this.MouseMove += new MouseEventHandler(ActivityControl_MouseMovE);
  11.         }
  12.         protected override void OnMouSELEftButtonDown(MouseButtonEventArgs E)
  13.         {
  14.             base.onMouSELEftButtonDown(E);
  15.             e.Handled = false;
  16.         }
  17.         protected override void OnMouSELEftButtonUp(MouseButtonEventArgs E)
  18.         {
  19.             base.onMouSELEftButtonUp(E);
  20.             e.Handled = false;
  21.         }
  22.         void ActivityControl_MouseMove(object sender, MouseEventArgs E)
  23.         {
  24.             if (_isMouseDown)
  25.             {
  26.                 Point p = e.GetPosition(null);
  27.                 this.SETVALue(Canvas.LeftProperty, p.X - _oldPoint.X + (double)this.GetValue(Canvas.LeftProperty));
  28.                 this.SETVALue(Canvas.TopProperty, p.Y - _oldPoint.Y + (double)this.GetValue(Canvas.TopProperty));
  29.                 _oldPoint = p;
  30.             }
  31.         }
  32.         void ActivityControl_MouSELEftButtonUp(object sender, MouseButtonEventArgs E)
  33.         {
  34.             if (_isMouseDown)
  35.             {
  36.                 _isMouseDown = false;
  37.                 this.ReleaseMouseCapture();
  38.             }
  39.         }
  40.         void ActivityControl_MouSELEftButtonDown(object sender, MouseButtonEventArgs E)
  41.         {
  42.             _isMouseDown = true;
  43.             _oldPoint = e.GetPosition(null);
  44.             this.CaptureMouse();
  45.         }

我们只需要简单加上@H_173_403@@H_505_404@e.Handled = false;这句代码就可激活这两个事件了。@H_173_403@

@H_505_404@silverlight2之所以有这个变化是为了和WPF保持一致。@H_173_403@

大佬总结

以上是大佬教程为你收集整理的silverlight 2 事件变化全部内容,希望文章能够帮你解决silverlight 2 事件变化所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。