(5):Silverlight 2 实现简单的拖放功能
概述
准备XAML
<Canvas Background="#46461F"><Button MouseLeftButtonDown="OnMouseDown" MouseMove="OnMouseMove"MouseLeftButtonUp="OnMouseUp" Canvas.Left="50" Canvas.Top="50" Background="Red"FontSize="18"Width="160" Height="80"><Button.Content><StackPanel Orientation="Horizontal" HorizontalAlignment="Center"VerticalAlignment="Center"><Image Source="smile_6.png"></Image><TextBlock Text="拖动我" VerticalAlignment="Center" Margin="10"></TextBlock></StackPanel></Button.Content></Button> </Canvas>
开始拖放操作
bool trackingMouseMove = false; Point mousePosition; void OnMouseDown(object sender, MouseButtonEventArgs e) {FrameworkElement element = sender as FrameworkElement;mousePosition = e.GetPosition(null);trackingMouseMove = true;if (null != element){element.CaptureMouse();element.Cursor = Cursors.Hand;} }
移动对象
void OnMouseMove(object sender, MouseEventArgs e) {FrameworkElement element = sender as FrameworkElement;if (trackingMouseMove){double deltaV = e.GetPosition(null).Y - mousePosition.Y;double deltaH = e.GetPosition(null).X - mousePosition.X;double newTop = deltaV + (double)element.GetValue(Canvas.TopProperty);double newLeft = deltaH + (double)element.GetValue(Canvas.LeftProperty);element.SetValue(Canvas.TopProperty, newTop);element.SetValue(Canvas.LeftProperty, newLeft);mousePosition = e.GetPosition(null);} }
完成拖放操作
void OnMouseUp(object sender, MouseButtonEventArgs e) {FrameworkElement element = sender as FrameworkElement;trackingMouseMove = false;element.ReleaseMouseCapture();mousePosition.X = mousePosition.Y = 0;element.Cursor = null; }
效果显示
结束语
本文出自 “TerryLee技术专栏” 博客,请务必保留此出处http://terrylee.blog.51cto.com/342737/67221
本文出自 51CTO.COM技术博客
转载于:https://www.cnblogs.com/GT_Andy/archive/2009/07/28/1922031.html
(5):Silverlight 2 实现简单的拖放功能相关推荐
- 一步一步学Silverlight 2系列(5):实现简单的拖放功能
概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...
- 一步一步学Silverlight 2系列(5):实现简单的拖放功能_转载
概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...
- winform listview 设置选中项 图片_实战PyQt5: 069-MV框架中的项视图拖放功能
模型-视图框架完全支持Qt的基本拖放操作,列表.树形和表格部件中的项可以在视图间拖动,数据可以以MIME类型的格式进行导入和导出 Qt提供的标准视图自动支持在视图内部的拖放,其中的项可以被移动以改变显 ...
- react引入外部js_React.js:无需使用外部库即可实现拖放功能
react引入外部js by Rajesh Pillai 由Rajesh Pillai React.js:无需使用外部库即可实现拖放功能 (React.js: implement the drag a ...
- android Launcher——拖放功能深入研究
Luancher有一个相对比较复杂的功能就是拖放功能,要深入了解launcher,深入理解拖放功能是有必要的,这篇blog,我将对launcher的拖放功能做深入的了解 1.首先直观感受什么时候开始拖 ...
- 实现一个简单的投票功能
实现一个简单的投票功能 最近项目中需要用到一个投票功能,当时觉得简单,向都没想就动手开始做,没想到走了不少弯路. 后来才发现,是想的太过简单了.来看看改进后的功能. 第一步:数据库设计 两个表:一个主 ...
- android实现计算器功能吗,利用Android实现一个简单的计算器功能
利用Android实现一个简单的计算器功能 发布时间:2020-11-20 16:25:01 来源:亿速云 阅读:90 作者:Leah 今天就跟大家聊聊有关利用Android实现一个简单的计算器功能, ...
- nodejs php web,nodejs实现的简单web服务器功能示例
本文实例讲述了nodejs实现的简单web服务器功能.分享给大家供大家参考,具体如下: 前端js代码: $.ajax({ url:'http://192.168.0.114:3000',//服务器地址 ...
- WPF拖放功能实现zz
写在前面:本文为即兴而作,因此难免有疏漏和词不达意的地方.在这里,非常期望您提供评论,分享您的想法和建议. 这是一篇介绍如何在WPF中实现拖放功能的短文. 首先要读者清楚的一件事情是:拖放主要分为拖放 ...
最新文章
- Reg Infomation
- Windows 7 X64平台编译LLVM+clang
- H.264码流结构解析
- java开灯问题_C++之开灯问题(链表)
- Linux 通过命令行下载、上传文件到百度网盘(bypy)
- Kudu :主键冲突 status=Already present: key already present
- Asp.Net在SqlServer中的图片存取
- 标准化工作导则2020_夯实标准化工作——标准化工作导则GB/T 1.12020培训会在水发兴业能源顺利举办...
- Linux下的HDFS命令
- Android Room 库基础入门
- java枚举值转化中文_多个枚举的国际化(枚举值的转换)
- JavaScript:集合与数组,重要但你不知道的ES6数据类型
- 程序员找工作黑名单,避雷针!
- 十分钟实现灭霸打响指灰飞烟灭的效果,android路由器app
- xgboost在LTR(学习排序)中的应用
- ubuntu系统忘记密码(win+ubuntu双系统)
- thinkphp实现邮箱发送
- Revit二次开发—获取内置参数对应的中文字符串,并导出Excel;举例(BuiltParameterGroup、ParameterType和BuiltInCategory)
- JS抽象语法树AST基础学习
- Linear equations