none
wpf 判断鼠标是否在控件的区域内 RRS feed

  • 问题

  • 你好,

    我有个控件A,做了A.CaptureMouse捕获鼠标的操作,现在想在收到MouseUp事件时,在事件内判断鼠标是否在A区域内或A上。

    不使用MouseLeave的话 该如何做呢?

    谢谢<tbdiv id="playerControlBtn"></tbdiv><tbdiv id="leftFullStackButton"></tbdiv><tbdiv id="rightFullStackButton"></tbdiv>

    2016年9月29日 1:54

答案

  • IsMouseOver
    2016年9月29日 6:31
  • Hi  skczjun,

    你可以在MouseUp事件中,增加Mouse.GetPosition(e.Source as FrameworkElement)来获取相对A控件的坐标。这样保证了鼠标在A区域。

       <Label x:Name="showxy"  Height="40" Width="260" MouseUp="showxy_MouseUp">test click up</Label>
    
            private void showxy_MouseUp(object sender, MouseButtonEventArgs e)
            {
               //获取当前控件元素相对鼠标点击的位置(只有点击在当前A控件,会触发事件并返回相对A控件的鼠标位置)。
                Point pp = Mouse.GetPosition(e.Source as FrameworkElement);//WPF方法
                MessageBox.Show(string.Format("GetCursorPos {0},{1}", pp.X, pp.Y));
            }
    

    Best Regards,

    Yohann Lu

    2016年10月3日 8:30
    版主

全部回复

  • IsMouseOver
    2016年9月29日 6:31
  • Hi  skczjun,

    你可以在MouseUp事件中,增加Mouse.GetPosition(e.Source as FrameworkElement)来获取相对A控件的坐标。这样保证了鼠标在A区域。

       <Label x:Name="showxy"  Height="40" Width="260" MouseUp="showxy_MouseUp">test click up</Label>
    
            private void showxy_MouseUp(object sender, MouseButtonEventArgs e)
            {
               //获取当前控件元素相对鼠标点击的位置(只有点击在当前A控件,会触发事件并返回相对A控件的鼠标位置)。
                Point pp = Mouse.GetPosition(e.Source as FrameworkElement);//WPF方法
                MessageBox.Show(string.Format("GetCursorPos {0},{1}", pp.X, pp.Y));
            }
    

    Best Regards,

    Yohann Lu

    2016年10月3日 8:30
    版主