思路
拿向上贴边隐藏举例:
通过判断窗体上边框的坐标,来判断窗体是否贴边,然后通过窗体的向上移动,实现隐藏!
窗体坐标的机制:
当窗体向上贴边的时候,它的Top坐标就为0,再向上走,就是负数,其他坐标也是这样的。
代码
两行代码实现隐藏:
//窗体隐藏的方法
//鼠标移出事件
private void from_MouseLeave(object sender, System.Windows.Input.MouseEventArgs e)
{
//三个条件判断
// 1. 窗体Top坐标小于2时候(隐藏触发的条件)
// 2. Top的坐标>-Height+3(隐藏停止的条件,+3是为了露出3像素的据类,方便用户找到隐藏的窗体)
// 3. IsMouseOver 鼠标不在窗体上的时候
while (Top <= 2 && Top > -Height + 3 && !IsMouseOver)
{
//窗体Top不断-1
Top -= 1;
}
}
//窗体显示方法
//鼠标进入窗体事件
private void from_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e)
{
//如果窗体的上坐标小于-1
// 解释:当窗体的Top坐标 =-1 的时候,窗体就不向下移动了
// 这样就解决了,窗体上下跳的问题
while (this.Top < -1 )
//窗体的上坐标不断 +1
this.Top += 1;
}
别看这几句代码,够你研究一会,但是研究完了,思路清晰了,其实也就很简单了!嘿嘿!
感谢大家阅读,如有不足,欢迎指出!感觉有所收获,点个赞鼓励一下!