树袋熊的夏天 2019-01-12 09:06 采纳率: 0%
浏览 1682

WPF Button控件touchdown和touchup事件

1.我新建了一个Button控件,代码如下

 forwardButton.AddHandler(Button.TouchDownEvent, new RoutedEventHandler(touch_down_F), true);

调用方法为

private void touch_down_F(object sender, RoutedEventArgs e)
            {
                PLCret[1] = axActUtlType.SetDevice(PLCname1[100], 1);//M100
            }

实际运行时事件无响应,TouchUp也是如此......

请求高手解答

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-07 17:06
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在 WPF 中,Button 控件的 TouchDownTouchUp 事件是绑定到 MouseEnterMouseLeave 事件上的。所以你需要先将 Button 控件添加到 Window 或者其他上下文窗口中。

    然后你可以在你的 ButtonClick 事件中调用你的触摸事件处理程序:

    public partial class MyWindow : Window
    {
        public MyWindow()
        {
            InitializeComponent();
        }
    
        private void btnForward_Click(object sender, RoutedEventArgs e)
        {
            // 假设这是一个触摸事件处理函数
            TouchDownHandler(sender as Button);
    
            // 调用其他操作
            DoSomethingElse();
        }
    
        private void TouchDownHandler(Button button)
        {
            // 这里你可以根据触摸事件的具体内容进行相应的操作
            // 示例:获取触摸点坐标、判断是否点击按钮等
            var point = Mouse.GetPosition(button);
            if (point.X > 50 && point.Y > 50) // 模拟触摸点在特定位置触发
            {
                // 点击逻辑
                // ...
            }
        }
    }
    

    在这个例子中,我们使用了 Mouse.GetPosition() 来获取触摸点的位置,并且检查它是否位于我们的模拟触摸点(即点击区域)内。如果你希望处理所有类型的触摸事件,而不是仅仅点击事件,请参考下面的例子:

    private void TouchDownHandler(Button button)
    {
        // 获取触摸点坐标
        var point = Mouse.GetPosition(button);
    
        // 检查触摸点是否在某个范围内
        if (point.X > 50 && point.Y > 50) // 模拟触摸点在特定位置触发
        {
            // 点击逻辑
            // ...
        }
    }
    

    注意:这只是一个基本示例,实际应用可能需要更复杂的逻辑来处理各种触摸事件。

    评论

报告相同问题?