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

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

  方法一:WPF方法

    Point p = Mouse.GetPosition(e.Source as FrameworkElement);

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

 方法二: API方法

   /// <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貌似有很多方法,我搜索的很多资料都要用线程,觉得还是有点儿麻烦,最后在国外的技术论坛上看到

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

 前台:

    <ProgressBar Grid.Row="1" Height="20" Width="200" Margin="0,4,0,0"   Name="ProgressBar1" HorizontalAlignment="Center"  VerticalAlignment="top"  />

效果:

方法二:使用定时器

  public Window1()
        {
            InitializeComponent();

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

        }
 void _mainTimer_Tick(object sender, EventArgs e)
        {
            if (progressBar2.Value == progressBar1.Maximum)
                progressBar2.Value = 0;

            progressBar2.Value++;
        }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏葡萄城控件技术团队

Spread for Windows Forms快速入门(11)---数据筛选

Spread支持开发人员自定义筛选数据的用户体验。基于行数据筛选,你可以允许用户分列进行筛选,从而仅显示符合了下拉列表中条件的行的数据,或者根据筛选结果更改行的...

17910
来自专栏林德熙的博客

dotnet 从入门到放弃的 500 篇文章合集

博客包括 C#、WPF、UWP、dotnet core 、git 和 VisualStudio 和一些算法,所有博客使用 docx 保存

1562
来自专栏王大锤

IOS开发中滑动页面时NSTimer停止的问题

3719
来自专栏一个会写诗的程序员的博客

Macaca 极简教程Macaca 介绍快速开始:从无到有搭建 Macaca 环境 (forMac)代码实例awesome-macaca

macaca提供的元素查找工具,可以将app视图的结构以布局结构树的格式在浏览器上展示出来,用过点击某个元素,就可以方便的查询到该控件的基本信息,以方便查找。具...

4422
来自专栏BY的专栏

iOS定时器,你真的会使用吗?前言正文结语

4755
来自专栏lgp20151222

debug的一些按钮意义

853
来自专栏跟着阿笨一起玩NET

如何在控件的设计时得到窗体设计器中的所有控件

本文转载:http://www.cnblogs.com/Ricky81317/archive/2007/01/04/611942.html

761
来自专栏林德熙的博客

WPF 渲染级别

很少人会知道 WPF 也可以知道当前的显卡能支持的渲染级别。 根据显卡的不同,包括显存、纹理等的支持是否打到要求,指定渲染级别。

1102
来自专栏iOS 开发杂谈

浅析 NSTimer 和 CADisplayLink 内存泄漏

谈论 NSTimer & CADisplayLink 内存泄漏,要理解 NSTimer & CADisplayLink 的基础概念,下面通过一个倒计时的实现的 ...

1671
来自专栏MasiMaro 的技术博文

程序隐藏到任务栏的实现

我们在使用软件的时候,有的软件允许最小化到任务栏,然后双击任务栏的图标时又会显示出来,这篇文章主要说明如何实现这种功能; 实现这种功能主要分为两步,一是将程...

1181

扫码关注云+社区