正确实现Silverlight拖拽功能
Silverlight拖拽功能的实现再实际开发编程中是一个非常重要的基础功能。对于一个开发人员来说,如果想要很好的使用Silverlight来实现相关功能需求,就需要牢固掌握这些基础功能的应用。#t#
下面的示例演示如何在基于 Silverlight 的应用程序中拖放对象。出于安全考虑,不能在应用程序之间拖放对象。因此,说成在 Silverlight 插件区域内"滑动"对象更为准确。但是,术语"拖放"更为人知,因此在此处使用。
Silverlight拖拽功能Xaml脚本:
- < UserControl x:Class=
"DragAndDropSimple.Page" - xmlns="http://schemas.microsoft.
com/winfx/2006/xaml/presentation" - xmlns:x="http://schemas.
microsoft.com/winfx/2006/xaml" - Width="400" Height="300">
- < Canvas x:Name="rootCanvas"
- Width="640"
- Height="480"
- Background="Gray"
- >
- < !-- You can drag this
rectangle around the canvas. --> - < Rectangle
- MouseLeftButtonDown=
"Handle_MouseDown" - MouseMove="Handle_MouseMove"
- MouseLeftButtonUp="Handle_MouseUp"
- Canvas.Left="30" Canvas.
Top="30" Fill="Red" - Width="50" Height="50" />
- < /Canvas>
- < /UserControl>
后置代码:
- // Global variables used to
keep track of the - // mouse position and whether
the object is captured - // by the mouse.
- bool isMouseCaptured;
- double mouseVerticalPosition;
- double mouseHorizontalPosition;
- public void Handle_MouseDown
(object sender, MouseEventArgs args) - {
- Rectangle item = sender as Rectangle;
- mouseVerticalPosition = args.
GetPosition(null).Y; - mouseHorizontalPosition =
args.GetPosition(null).X; - isMouseCaptured = true;
- item.CaptureMouse();
- }
- public void Handle_MouseMove
(object sender, MouseEventArgs args) - {
- Rectangle item = sender as Rectangle;
- if (isMouseCaptured)
- {
- // Calculate the current
position of the object. - double deltaV = args.GetPosition(null).
Y - mouseVerticalPosition; - double deltaH = args.GetPosition(null).
X - mouseHorizontalPosition; - double newTop = deltaV (double)
item.GetValue(Canvas.TopProperty); - double newLeft = deltaH (double)
item.GetValue(Canvas.LeftProperty); - // Set new position of object.
- item.SetValue(Canvas.TopProperty, newTop);
- item.SetValue(Canvas.LeftProperty, newLeft);
- // Update position global variables.
- mouseVerticalPosition = args.
GetPosition(null).Y; - mouseHorizontalPosition = args.
GetPosition(null).X; - }
- }
- public void Handle_MouseUp(object
sender, MouseEventArgs args) - {
- Rectangle item = sender as Rectangle;
- isMouseCaptured = false;
- item.ReleaseMouseCapture();
- mouseVerticalPosition = -1;
- mouseHorizontalPosition = -1;
- }
Silverlight拖拽功能的实现方法就为大家介绍到这里啦。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /news/detail/tanhbkfaik
系列文章
更多
同类精品
更多
-
从《银行业金融机构数据治理指引》监管要求看商业银行数据能力建设
51CTO 09-21 -
2023 年度 A 类学科竞赛项目清单
那个人有梦想 09-16 -
爱思唯尔的ESWA——模板、投稿、返修、接收的
老板来碗小面加蛋~ 09-16 -
国航天科技集团公司的各个研究院
知识在于积累 09-17 -
全球WIFI功率信号最强的国家清单,无线WIFI调优
Cisco_VIP 09-17 -
AI绘画Midjourney的咒语关键词汇
毕设小程序软件程序猿 09-17 -
ChatGPT注册流程攻略,含验证码接收
PHP中文网 05-29 -
创作者身份认证申请规则和审核标准
CSDN官方博客 09-16 -
的10 个顶尖的国内外设计网站
四喜圆子- 09-16 -
OBS做绿幕直播滤镜实现去掉绿色背景
视频砖家 09-16