在XAML中找不到DoubleClick

问题描述 投票:14回答:3

我在XAML中有一个ListView控件。这些项由模板控件定义,其中GridB中包含TextBlock。现在我想在双击TextBlock时触发一个动作。令我惊讶的是,我发现没有DoubleClick事件要挂钩......!我认为只是TextBlock没有它,但实际上没有控件拥有它。我寻找DoubleClick和MouseDoubleClick,但它们肯定不存在。

我已经阅读了使用Gesture =“MouseDoubleClick”将EventTrigger添加到控件的建议。它看起来很有希望,但在我的情况下,编译器抱怨并告诉我没有像MouseDoubleClick这样的手势。与DoubleClick相同。

DoubleClick是否在某个版本的.Net中消失了?我有.Net Framework 4.5,项目是WPF应用程序。

通过检测MouseDown并检查自上次MouseDown以来经过的时间,我是否必须做愚蠢的变通办法?听起来像石头......

xaml double-click
3个回答
17
投票

制定问题总是令人耳目一新!经过一段时间的思考,我想也许他们为鼠标事件添加了一个计数器而不是单独的事件。那似乎是这样的! MouseButtonEventArgs具有ClickCount属性。检查值2时,我检测到了DoubleClick!

刚开始使用DoubleClick仍然有点奇怪。即使在搜索之后,我也没有找到关于它何时以及为何消失的参考。


14
投票

只是为了显示解决方案Jakob意味着:

private void img_MouseDown(object sender, MouseButtonEventArgs e)
        {
            if (e.LeftButton == MouseButtonState.Pressed && e.ClickCount == 2)
            {
                //DO SOMETHING
            }
        }

5
投票

使用内容ContentControl,Luke!

<ContentControl MouseDoubleClick="OnDoubleClick"> 
    <TextBlock Text="Hello" FontSize="15" /> 
</ContentControl>
© www.soinside.com 2019 - 2024. All rights reserved.