WPF的Popup自动显示隐藏

简单实现鼠标移过Popup自动显示和隐藏的功能;

在xaml.cs中实现,首先创建一个定时器,设置300ms的延时:

复制代码
 1         DispatcherTimer timer;
 2 
 3         public Function1View()
 4         {
 5             InitializeComponent();
 6 
 7             timer = new DispatcherTimer();
 8             timer.Tick += timer_Tick;
 9             timer.Interval = TimeSpan.FromMilliseconds(300);
10         }
复制代码

z定时器的触发函数中,隐藏Popup:

1         void timer_Tick(object sender, EventArgs e)
2         {
3             menuPopup.IsOpen = false;
4         }

Popup和目标控件的鼠标进入和离开函数:

复制代码
 1         /// <summary>
 2         /// 鼠标移走
 3         /// </summary>
 4         /// <param name="sender"></param>
 5         /// <param name="e"></param>
 6         private void Border_MouseLeave(object sender, MouseEventArgs e)
 7         {
 8             timer.Start();
 9         }
10         /// <summary>
11         /// 鼠标移走
12         /// </summary>
13         /// <param name="sender"></param>
14         /// <param name="e"></param>
15         private void menuPopup_MouseLeave(object sender, MouseEventArgs e)
16         {
17             timer.Start();
18         }
19         /// <summary>
20         /// 鼠标进入
21         /// </summary>
22         /// <param name="sender"></param>
23         /// <param name="e"></param>
24         private void Border_MouseEnter(object sender, MouseEventArgs e)
25         {
26             menuPopup.IsOpen = true;
27             timer.Stop();
28         }
29         /// <summary>
30         /// 鼠标进入
31         /// </summary>
32         /// <param name="sender"></param>
33         /// <param name="e"></param>
34         private void menuPopup_MouseEnter(object sender, MouseEventArgs e)
35         {
36             menuPopup.IsOpen = true;
37             timer.Stop();
38         }
复制代码

实现效果:

 

posted @   [春风十里]  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示