前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WPF备忘录(2)WPF获取和设置鼠标位置与progressbar的使用方法

WPF备忘录(2)WPF获取和设置鼠标位置与progressbar的使用方法

作者头像
hbbliyong
发布2018-03-05 16:14:26
1.7K0
发布2018-03-05 16:14:26
举报
文章被收录于专栏:hbbliyong

一、WPF 中获取和设置鼠标位置

  方法一:WPF方法

代码语言:javascript
复制
    Point p = Mouse.GetPosition(e.Source as FrameworkElement);

  Point p = (e.Source as FrameworkElement).PointToScreen(pp);

 方法二: API方法

代码语言:javascript
复制
   /// <summary>   
        /// 设置鼠标的坐标   
        /// </summary>   
        /// <param name="x">横坐标</param>   
        /// <param name="y">纵坐标</param>          

        [DllImport("User32")]

        public extern static void SetCursorPos(int x, int y);
        public struct POINT
        {
            public int X;
            public int Y;
            public POINT(int x, int y)
            {
                this.X = x;
                this.Y = y;
            }

        }

        /// <summary>   
        /// 获取鼠标的坐标   
        /// </summary>   
        /// <param name="lpPoint">传址参数,坐标point类型</param>   
        /// <returns>获取成功返回真</returns>   


        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern bool GetCursorPos(out POINT pt);


        private void Window_MouseMove(object sender, MouseEventArgs e)
        {
            POINT p = new POINT();
            if (GetCursorPos(out p))//API方法
            {
                txtStat.Text = string.Format("X:{0}   Y:{1}", p.X, p.Y);
            }
        }
 

二、 WPF中实现实时更新progressbar

      实现实时更新ProgressBar貌似有很多方法,我搜索的很多资料都要用线程,觉得还是有点儿麻烦,最后在国外的技术论坛上看到

  一个用代理解决的方法,下面就是我的调试过程:

 前台:

代码语言:javascript
复制
    <ProgressBar Grid.Row="1" Height="20" Width="200" Margin="0,4,0,0"   Name="ProgressBar1" HorizontalAlignment="Center"  VerticalAlignment="top"  />

效果:

方法二:使用定时器

代码语言:javascript
复制
  public Window1()
        {
            InitializeComponent();

            DispatcherTimer _mainTimer = new DispatcherTimer();
            _mainTimer.Interval = TimeSpan.FromSeconds(1);
            _mainTimer.Tick += new EventHandler(_mainTimer_Tick);
            _mainTimer.IsEnabled = true;

        }
代码语言:javascript
复制
 void _mainTimer_Tick(object sender, EventArgs e)
        {
            if (progressBar2.Value == progressBar1.Maximum)
                progressBar2.Value = 0;

            progressBar2.Value++;
        }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2013-07-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档