您的位置:首页 > 编程语言 > C#

C# 获取鼠标坐标

2015-07-26 12:01 363 查看
功能:C# 获取鼠标坐标界面展示出来

环境:vs2010,wpf

界面代码:

<Window x:Class="GetMousePosition.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        Title="MainWindow" Height="450" Width="650" MouseMove="Window_MouseMove">

    <Grid>

        <Grid.RowDefinitions>

            <RowDefinition Height="*" />

            <RowDefinition Height="35" />

        </Grid.RowDefinitions>

        <Grid Grid.Row="1" Margin="0" Name="grid1">

            <Grid.ColumnDefinitions>

                <ColumnDefinition Width="*" />

                <ColumnDefinition Width="120" />

                <ColumnDefinition Width="120" />

            </Grid.ColumnDefinitions>

            <Grid Grid.Column="1" Name="grid2">

                <Grid.ColumnDefinitions>

                    <ColumnDefinition Width="25" />

                    <ColumnDefinition Width="35*" />

                </Grid.ColumnDefinitions>

                <Label Content="x:" Height="25" HorizontalAlignment="Left" Margin="0" Name="labX" VerticalAlignment="Center" Width="25" />

                <Label Content="" Height="25" HorizontalAlignment="Left" Margin="0" Name="labPosX" VerticalAlignment="Center" Width="65" Grid.Column="1"/>

            </Grid>

            <Grid Grid.Column="2" Name="grid3">

                <Grid.ColumnDefinitions>

                    <ColumnDefinition Width="25" />

                    <ColumnDefinition Width="35*" />

                </Grid.ColumnDefinitions>

                <Label Content="y:" Height="25" HorizontalAlignment="Left" Margin="0" Name="labY" VerticalAlignment="Center" Width="25" />

                <Label Content="" Height="25" HorizontalAlignment="Left" Margin="0" Name="labPosY" VerticalAlignment="Center" Width="65" Grid.Column="1"/>

            </Grid>

        </Grid>

    </Grid>

</Window>

后台逻辑代码:

using System.Windows;

using System.Windows.Input;

using System.Runtime.InteropServices;

namespace GetMousePosition

{

    /// <summary>

    /// MainWindow.xaml 的交互逻辑

    /// </summary>

    public partial class MainWindow : Window

    {

        public MainWindow()

        {

            InitializeComponent();

        }       

        private void Window_MouseMove(object sender, MouseEventArgs e)

        {

            GetMousePosition(sender, e);

        }

        [DllImport("user32.dll", CharSet = CharSet.Auto)]

        public static extern bool GetCursorPos(out POINT pt);

        private void GetMousePosition(object sender, System.Windows.Input.MouseEventArgs e)

        {

            Point p = e.MouseDevice.GetPosition(this);       //获取鼠标相对位置

            //MainWindow.POINT pit = new MainWindow.POINT();

            //MainWindow.GetCursorPos(out pit);                //获取鼠标绝对位置

            labPosX.Content = p.X.ToString();

            labPosY.Content = p.Y.ToString();

        }

        #region  定义坐标数据

#if true

        //动态显示

        [StructLayout(LayoutKind.Sequential)]

        public struct POINT

        {

            private int xPos;

            private int yPos;

            public POINT(int x, int y)

            {

                this.xPos = x;

                this.yPos = y;

            }

            public int X

            {

                get { return xPos; }

                set { xPos = value; }

            }

            public int Y

            {

                get { return yPos; }

                set { yPos = value; }

            }

        }

#else

        public class POINT

        {

            private int xPos;

            private int yPos;

            public POINT(int x, int y)

            {

                this.xPos = x;

                this.yPos = y;

            }

             public int X

            {

                get{ return xPos;}

                set{ xPos = value;}

            }

            public int Y

            {

                get{ return yPos;}

                set{ yPos = value;}

            }

        }

#endif

        #endregion

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C# WPF 获取鼠标坐标