Silverlight事件之鼠标拖动(二)
来源:互联网 发布:2015网络广告费用 编辑:程序博客网 时间:2024/05/23 18:46
Silverlight中实现鼠标拖动效果
XAML代码:
<Grid x:Name="LayoutRoot" Background="White">
<Canvas Background="AliceBlue">
<Ellipse MouseMove="Ellipse_MouseMove"
MouseLeftButtonDown="Ellipse_MouseLeftButtonDown"
MouseLeftButtonUp="Ellipse_MouseLeftButtonUp" Canvas.Left="50"
Canvas.Top="50" Width="120" Height="120" Fill="Gold" Stroke="Black"
StrokeThickness="3"/>
<TextBlock x:Name="tbkpos" FontSize="26"/>
</Canvas>
</Grid>
</UserControl>
<Grid x:Name="LayoutRoot" Background="White">
<Canvas Background="AliceBlue">
<Ellipse MouseMove="Ellipse_MouseMove"
MouseLeftButtonDown="Ellipse_MouseLeftButtonDown"
MouseLeftButtonUp="Ellipse_MouseLeftButtonUp" Canvas.Left="50"
Canvas.Top="50" Width="120" Height="120" Fill="Gold" Stroke="Black"
StrokeThickness="3"/>
<TextBlock x:Name="tbkpos" FontSize="26"/>
</Canvas>
</Grid>
</UserControl>
后台代码:
private void Ellipse_MouseMove(object sender, MouseEventArgs e)
{
FrameworkElement element = sender as FrameworkElement;
if (isMouseMoving)
{
double currX = e.GetPosition(null).X - currentPostion.X;
double currY = e.GetPosition(null).Y - currentPostion.Y;
element.SetValue(Canvas.TopProperty,currY+(double)element.GetValue(Canvas.TopProperty));
element.SetValue(Canvas.LeftProperty,currX+(double)element.GetValue(Canvas.LeftProperty));
tbkpos.Text = "Ellipse当前坐标:"+currentPostion.X.ToString()+","+currentPostion.Y.ToString();
currentPostion = e.GetPosition(null);
}
}
//鼠标左键按下
private void Ellipse_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
FrameworkElement element = sender as FrameworkElement;
currentPostion = e.GetPosition(null);
isMouseMoving = true;
if (element != null)
{
//将鼠标设置为UIElement,开始捕捉鼠标位置
element.CaptureMouse();
element.Cursor = Cursors.Hand;
}
}
private void Ellipse_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
FrameworkElement element = sender as FrameworkElement;
isMouseMoving = false;
element.ReleaseMouseCapture();//停止捕捉鼠标位置
currentPostion.X = 0;
currentPostion.Y = 0;
element.Cursor = null;
}
- Silverlight事件之鼠标拖动(二)
- Silverlight 4之鼠标事件
- Silverlight behavior 鼠标拖动
- silverlight canvas 鼠标拖动canvas
- (4):Silverlight 2 鼠标事件处理
- Silverlight不响应鼠标实现拖动效果
- Microsoft Silverlight 4从入门到精通之鼠标事件
- wxpython实现鼠标拖动事件
- 前端鼠标拖动事件冲突
- 捕捉鼠标拖动和鼠标移动事件
- Silverlight DataGrid鼠标双击事件
- 鼠标拖动事件_js效果(深入分析)
- 鼠标拖动事件_js效果(深入分析)
- Silverlight事件之路由事件(一)
- 一步一步学Silverlight 2系列(4):鼠标事件处理
- 一步一步学Silverlight 2系列(4):鼠标事件处理
- 稳扎稳打Silverlight(30) - 2.0Tip/Trick之Silverlight.js, Silverlight.supportedUserAgent.js, 自定义启动界面, 响应鼠标滚轮事件
- 稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
- record
- Linux下Memcached操作
- 【myeclipse,oracle】MyEclipse连接Oracle
- EXt条件查询,翻页传递查询参数的妙招
- 在大项目中,实施顾问主要负责什么具体工作?
- Silverlight事件之鼠标拖动(二)
- Admob sample在ADT17以上的SDK上面无法运行
- SecurityError: Error #3207: Application-sandbox content cannot access this feature.
- 关于CCLayer锚点的问题
- 关于IE6中absolute定位错误的原因及解决方案
- JAVA 线程池
- IE10 无法打开的问题
- 与中位数最接近的m个数
- 小技术总结0001系列