2012年11月13日火曜日

MouseMoveイベントでWindow内のマウスの位置を取得

Window の MouseMove イベントで渡される引数 MouseEventArgs の GetPosition メソッドで マウスの位置を取得できます。
Point point = e.GetPosition(this);

GetPositionは、渡された引数の要素に対する相対的なマウスの位置を返します。
ここでは、Windowであるthisを引数にして、Window内の座標を取得しています。


MainWindow.xaml

<Window x:Class="WpfApplication2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Height="150" Width="225"
        MouseMove="Window_MouseMove">
    <Grid>
        <TextBlock Name="textBlock1"/>
    </Grid>
</Window>

MainWindow.xaml.cs

using System.Windows;
using System.Windows.Input;

namespace WpfApplication2
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Window_MouseMove(object sender, MouseEventArgs e)
        {
            Point point = e.GetPosition(this);
            this.textBlock1.Text = "X=" + point.X + ", Y=" + point.Y;
        }
    }
}

0 件のコメント:

コメントを投稿