SL4.鼠标拖动

利用鼠标响应事件,定位对象的坐标,以实现拖放功能

XAML:

             <Canvas Background="Yellow"  Height="195" Name="canvas1" Width="457">
<Ellipse MouseMove="ellipse1_MouseMove" MouseLeftButtonDown="ellipse1_MouseLeftButtonDown"
MouseLeftButtonUp
="ellipse1_MouseLeftButtonUp" Fill="Gold" Canvas.Left="118" Canvas.Top="59" Height="100" Name="ellipse1" Stroke="Black" StrokeThickness="3" Width="200" />
</Canvas>
<TextBlock Height="23" Name="tbkPoint" Text="" Width="319" />

  

XAML.CS:

        Point curPos;
bool mouseMoviing = false;
private void ellipse1_MouseMove(object sender, MouseEventArgs e)
{
FrameworkElement element
= sender as FrameworkElement;
if(mouseMoviing)
{
double currX = e.GetPosition(null).X - curPos.X;
double currY = e.GetPosition(null).Y - curPos.Y;
element.SetValue(Canvas.TopProperty, currY
+ (double)element.GetValue(Canvas.TopProperty));
element.SetValue(Canvas.LeftProperty,
currX
+ (double)element.GetValue(Canvas.LeftProperty));
tbkPoint.Text
= "Ellipse 当前坐标:"+ curPos.X.ToString() + "," + curPos.Y.ToString();
curPos
= e.GetPosition(null);
}
}

private void ellipse1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
FrameworkElement element
= sender as FrameworkElement;
curPos
= e.GetPosition(null);
mouseMoviing
= true;
if(null!=element)
{
element.CaptureMouse();
element.Cursor
= Cursors.Hand;
}
}

private void ellipse1_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
FrameworkElement element
= sender as FrameworkElement;
mouseMoviing
= false;
element.ReleaseMouseCapture();
curPos.X
= 0;
curPos.Y
= 0;
element.Cursor
= null;
}

  

转载于:https://www.cnblogs.com/baobao2010/archive/2011/08/25/2153250.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值