代码之家  ›  专栏  ›  技术社区  ›  mbugr

如何检查鼠标悬停在所有按钮WPF上

  •  -1
  • mbugr  · 技术社区  · 10 年前

    我尝试实现一种方法来检查鼠标是否在所有按钮上,就像鼠标在左侧,然后在右侧,如果用户做出了特定的动作
    在下面的图片中,用户在第1面上的按钮上按箭头方向移动,然后在第2面上移动,我的问题是如何检查用户在动作上移动,以做出特定的动作
    能给make链接或一些代码帮助我制作吗?


    Over side 11 then side 2

    2 回复  |  直到 10 年前
        1
  •  1
  •   Dragos Stoica    10 年前

    应该是这样的:

     protected Point TouchStart;
            private void UIElement_OnMouseEnter(object sender, MouseEventArgs e)
            {
                TouchStart = e.GetPosition(this);
                MyButton.Background = Brushes.Red;
    
            }
        private void UIElement_OnMouseLeave(object sender, MouseEventArgs e)
        {
                var touch = e.GetPosition(this);
    
            if (touch.X >= (TouchStart.X + 99)) //button width here
    
            {
                MyButton.Background = Brushes.Aquamarine;
            }
        }
    

    和XAML:

      <Button Width="100" x:Name="MyButton" Height="30" MouseEnter="UIElement_OnMouseEnter" MouseLeave="UIElement_OnMouseLeave" >HoverMe</Button>
    
        2
  •  1
  •   Muds    10 年前

    你可以这样做鼠标进出

    <Canvas  x:Name="Canvas" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0,9,6,0">
        <Button Canvas.Top="0" Canvas.Left="0" x:Name="button" Width="100" MouseEnter="Butt_OnMouseEnter" Height="200"/>
    </Canvas>
    

    和在处理程序中

    private void Butt_OnMouseEnter(object sender, MouseEventArgs e)
    {
        var position = e.GetPosition(Canvas);
    }
    

    现在这个位置被写入画布,因此将告诉您鼠标从哪一侧输入或离开。。