• 2018-2-13-win10-uwp-获取按钮鼠标左键按下


    title author date CreateTime categories
    win10 uwp 获取按钮鼠标左键按下
    lindexi
    2018-2-13 17:23:3 +0800
    2018-2-13 17:23:3 +0800
    Win10 UWP

    我们可以使用PointerPressed获得鼠标右键按下,但是我们如何获得左键? UWP 左键按下经常获取不到,本文:如何获得鼠标按下

    其实 UWP 已经没有 MouseLeftButtonDown ,于是我们可以使用一个简单方法去获取鼠标左键按下。

    我们在 xaml 写一个 Button,给他名称 MyButton

    于是在 xaml.cs 写一个 PointerPressed 函数,把它在构造添加给我们的 Button 的 PointerPressedEvent

            public MainPage()
            {
                this.InitializeComponent();
                MyButton.AddHandler(PointerPressedEvent,
                    new PointerEventHandler(Button_OnPointerPressed), true);
            }
    
            private void Button_OnPointerPressed(object sender, PointerRoutedEventArgs e)
            {
                
            }
    

    上面是添加一个路由 PointerEventHandler ,无论有没 e.handle 在之前都会使用这个事件。

    如果这是大家在函数 Button_OnPointerPressed 断点,可以看到我们左键和右键按下都会触发。

    但是我们如何知道我们按下的是左键还是右键?

    我们可以使用 e.Handle 查看是否是 true ,如果是 true ,那么是左键,如果是 false 那么是右键。

    这方法简单。

    但是这不是一个好方法,我们可以使用 GetCurrentPoint 的 IsLeftButtonPressed 来知道我们是左键按下

                var temp = e.GetCurrentPoint(sender as Button);
    
                if (temp.Properties.IsLeftButtonPressed)
                {
                    _leftMouse = true;
                }
    

    如果我们只要左键,那么我们可以使用Tapped

    Tap可以获得是鼠标、按下的点,这在弹出时有用。

    参见:UWP开发大坑之---路由事件

  • 相关阅读:
    保持URL不变和数字验证
    centOS ftp key?
    本地环境测试二级域名
    linux 解决You don't have permission to access 问题
    php smarty section loop
    php header Cannot modify header information headers already sent by ... 解决办法
    linux部分命令
    Linux 里面的文件操作权限说明
    用IT网络和安全专业人士视角来裁剪云的定义
    SQL Server 2008 R2炫酷报表"智"作有方
  • 原文地址:https://www.cnblogs.com/lindexi/p/12085896.html
Copyright © 2020-2023  润新知