拖拽小例子

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Document</title>
<style type="text/css">
#div{width:100px;height: 100px;background: red;position: absolute;}
</style>
<script type="text/javascript">
window.οnlοad=function(){

var odiv=document.getElementById("div");
odiv.οnmοusedοwn=function(ev){
var ev=ev||event;
var disX=ev.clientX-this.offsetLeft;
var disY=ev.clientY-this.offsetTop;
//捕获全局
if(odiv.setCapture){
odiv.setCapture();
}
document.οnmοusemοve=function(ev){
var ev=ev||event;
odiv.style.left=ev.clientX-disX+"px";
odiv.style.top=ev.clientY-disY+"px";
}
document.οnmοuseup=function(){
document.οnmοusemοve=document.οnmοuseup=null;
//释放全局捕获
if(odiv.releaseCapture){
odiv.releaseCapture();
}
}
return false;//阻止默认行为。
}
}
</script>
</head>
<body>
<p>这是段文字文字设计院</p>
<div id="div"></div>
</body>
</html>

转载于:https://www.cnblogs.com/hwmbh/p/7803871.html

WPF(Windows Presentation Foundation)中的Rectangle控件允许你在用户交互时拖动其边角来调整大小。要实现这种功能,你需要利用`MouseLeftButtonDown`、`MouseLeftButtonUp`和`MouseMove`事件,并结合一些几何变换知识。 首先,在XAML中创建Rectangle并添加`DragDelta`事件处理器: ```xml <Rectangle x:Name="myRectangle" Width="100" Height="50" Background="Blue" MouseLeftButtonDown="Rectangle_MouseLeftButtonDown" MouseMove="Rectangle_MouseMove" MouseLeftButtonUp="Rectangle_MouseLeftButtonUp"> </Rectangle> ``` 然后,在后端的`.cs`文件中编写相应的事件处理方法: ```csharp private Point initialPosition; private Size initialSize; private void Rectangle_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { initialPosition = e.GetPosition(myRectangle); initialSize = myRectangle.Size; } private void Rectangle_MouseMove(object sender, MouseEventArgs e) { if (e.LeftButton == MouseButtonState.Pressed) { var newPosition = e.GetPosition(myRectangle); var deltaX = newPosition.X - initialPosition.X; var deltaY = newPosition.Y - initialPosition.Y; // 更新矩形的位置 myRectangle.Margin = new Thickness(deltaX, deltaY, 0, 0); // 更新矩形的新尺寸 var newSize = initialSize + new Size(deltaX, deltaY); myRectangle.Width = newSize.Width; myRectangle.Height = newSize.Height; } } private void Rectangle_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { initialPosition = null; // 结束拖动操作 } ``` 在这个例子中,当用户按下左键开始拖动时,记录初始位置和大小;移动鼠标时,根据当前位置计算偏移量,并相应地更新矩形的位置和大小。松开左键时,停止拖动模式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值