点击页面布局边界处div层无故往上移动的问题

今天做系统主页的时候学了点东西,在这里记录一下

 

布局页面的时候,当我点击上半部分和下班部分分割边框的时候发现上半部分会往上移动,研究后才发现原来我div以及div里的table的margin和padding属性没有设置,导致显示的高度和实际高度有哦出入,所有在布局的时候一定要记住将元素的margin padding 或者table的cellspace都设置为0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要限制控件在Canvas边界移动,你需要监听控件的拖拽事件,然后在事件理程序中实现边界限制。 具体实现方法如下: 1. 在控件的 `MouseLeftButtonDown` 事件中,记录下鼠标相对于控件左上角的位置。 ```csharp private Point _lastPosition; private void OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { _lastPosition = e.GetPosition(this); } ``` 2. 在控件的 `MouseMove` 事件中,计算出控件应该移动到的位置,并进行边界限制。 ```csharp private void OnMouseMove(object sender, MouseEventArgs e) { if (e.LeftButton == MouseButtonState.Pressed) { // 计算出控件应该移动到的位置 var currentPosition = e.GetPosition(this); var delta = currentPosition - _lastPosition; var left = Canvas.GetLeft(this) + delta.X; var top = Canvas.GetTop(this) + delta.Y; // 边界限制 if (left < 0) left = 0; if (top < 0) top = 0; var parent = VisualTreeHelper.GetParent(this) as FrameworkElement; if (parent != null) { if (left + this.ActualWidth > parent.ActualWidth) left = parent.ActualWidth - this.ActualWidth; if (top + this.ActualHeight > parent.ActualHeight) top = parent.ActualHeight - this.ActualHeight; } // 移动控件 Canvas.SetLeft(this, left); Canvas.SetTop(this, top); _lastPosition = currentPosition; } } ``` 在这段代码中,我们首先计算出控件应该移动到的位置,然后进行边界限制。如果控件移动出了边界,我们就将它的位置设置为边界位置。最后,我们使用 `Canvas.SetLeft` 和 `Canvas.SetTop` 方法来移动控件。 注意,这里的边界限制是基于控件的父元素来计算的。如果你的控件不是直接放在Canvas中,而是放在其他控件中,你需要根据实际情况来计算边界位置。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值