日期:2014-05-17  浏览次数:20783 次

WPF手动触发MouseUp
自己向写一个自定义 listBox 控件,使它拥有HoverTime事件。代码如下:

    public class CustomImageControl : Image
    {
        private const int nHoverTimeSenconds = 2;
        private const int nHoverTimeMilliseconds = 0;
        private DispatcherTimer timeHover; 
        public CustomImageControl()
            : base()
        {
            timeHover = new DispatcherTimer();
            timeHover.Tick += (sender, e) =>
                {
                    // 些处想触发 OnMouseUp 事件,应该怎么写。
                    System.Windows.MessageBox.Show("Yes");
                };
            timeHover.Interval = new TimeSpan(0, 0, 0, nHoverTimeSenconds, nHoverTimeMilliseconds);
        }
        protected override void OnMouseEnter(System.Windows.Input.MouseEventArgs e)
        {
            base.OnMouseEnter(e);
            timeHover.Start();
        }
        protected override void OnMouseLeave(System.Windows.Input.MouseEventArgs e)
        {
            base.OnMouseLeave(e);
            timeHover.Stop();
        }
    }

百度、谷歌了半天了,写不出来啊!大神,我来了,你在哪?

------解决方案--------------------
image有mouseleftbuttonup 和down的事件 是一样用的啊
楼主可以试试
而且楼主最好不要用这种系统事件
而是自己写一个事件 事件到了抛出来 然后外面用他就可以了啊
在里面写
public event EventHandler<EventArgs> OnTimeUp;
public CustomImageControl()
            : base()
        {
            timeHover = new DispatcherTimer();
            timeHover.Tick += (sender, e) =>
                {
                    // 些处想触发