鼠标在一段时间内静止贴出提示标签的效果

1 篇文章 0 订阅
1 篇文章 0 订阅
后台代码:<span style="font-family: Arial, Helvetica, sans-serif;">public partial class MainWindow : Window</span>
    {
        public MainWindow()
        {
            InitializeComponent();
        }
 
        DispatcherTimer dtimer = new DispatcherTimer();
        Point p;
 
        private void Grid_MouseEnter(object sender, MouseEventArgs e)
        {
            Point p = Mouse.GetPosition(e.Source as IInputElement);
            textBox1.Text = p.X.ToString() + ", " + p.Y.ToString();
        }
 
        #region 鼠标悬浮在按钮上1s
 
        private void startTimer(object sender, MouseEventArgs e)
        {
            if (dtimer.IsEnabled == true)
            {
                dtimer.Stop();
            }
            dtimer = new DispatcherTimer();
            dtimer.Interval = TimeSpan.FromMilliseconds(1000);
            dtimer.Tick += show;
            dtimer.Start();
            dtimer.Tag = sender;
            p = e.GetPosition(e.Source as IInputElement);
        }
 
        private void stopTimer()
        {
            if (dtimer.IsEnabled == true)
            {
                dtimer.Stop();
            }
        }
 
        private void show(object o, EventArgs e)
        {
            DispatcherTimer objTimer = (DispatcherTimer)o;
            Button objButton = (Button)objTimer.Tag;
            MessageBox.Show(p.X.ToString() + "," + p.Y.ToString() + "\n" + objButton.Content.ToString());
            dtimer.Stop();
        }
 
        #endregion
 
        #region 各个按钮的悬浮事件、鼠标离开事件
 
        private void btnOK_MouseMove(object sender, MouseEventArgs e)
        {
            startTimer(sender, e);
        }
 
        private void btnOK_MouseLeave(object sender, MouseEventArgs e)
        {
            stopTimer();
        }
 
        private void button1_MouseMove(object sender, MouseEventArgs e)
        {
            startTimer(sender, e);
        }
 
        private void button1_MouseLeave(object sender, MouseEventArgs e)
        {
            stopTimer();
        }
 
        #endregion
         
    }
<span style="font-family: Arial, Helvetica, sans-serif;">前台代码:</span><span style="font-family: Arial, Helvetica, sans-serif;"><pre name="code" class="html"><Window x:Class="MouseEnterMakeTag.MainWindow"</span>
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525"  >
    <Grid MouseEnter="Grid_MouseEnter">
        <Button Content="按钮1" Height="61" HorizontalAlignment="Left" Margin="12,12,0,0" Name="btnOK" VerticalAlignment="Top" Width="61" MouseMove="btnOK_MouseMove" MouseLeave="btnOK_MouseLeave" />
        <TextBox Height="23" HorizontalAlignment="Left" Margin="371,12,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" />
        <Button Content="按钮2" Height="61" HorizontalAlignment="Left" Margin="12,79,0,0" Name="btnCancel" VerticalAlignment="Top" Width="61" MouseMove="button1_MouseMove" MouseLeave="button1_MouseLeave" />
    </Grid>
</Window>


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值