【问题标题】:Double click on WPF shape event双击 WPF 形状事件
【发布时间】:2019-02-14 23:41:45
【问题描述】:

我试图在双击我的 WPF 表单上的椭圆后捕获一个事件。我不确定这样做的最佳做法是什么,因为 WPF System.Windows.Shapes 不包含双击事件。

我已尝试捕获正常的鼠标按钮,点击次数为 2。

    private void SetupProjectsCOEllipse_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        //If double clicked
        if (e.ClickCount == 2)
        {
            PopupEntityDetails(this, ProjectsContext, LocalUser, TreeSetup.SelectedItem);
        }
    }

【问题讨论】:

    标签: c# wpf events shapes


    【解决方案1】:

    我已经设法通过使用 ContentControl 得到我想要的:

    <ContentControl MouseDoubleClick="Ellipse_DoubleClick">
        <Ellipse Name="SetupProjectsCOEllipse" Width="10" Height="10"/>
    </ContentControl>
    

    【讨论】:

      【解决方案2】:

      MouseDown 应该可以正常工作,如果不是,那么视觉中某处的父级正在阻止他冒泡的事件再次通过隧道返回。这也解释了为什么将形状包裹在 ContentControl 中会“修复”它。

      下次改用PreviewMouseDown。那是冒泡事件,所以你有机会在它被拦截之前抓住它。

      【讨论】:

      • 我已经尝试了PreviewMouseDownif (e.ClickCount &gt;= 2),它对我有用。我不需要使用ContentControl(在我的情况下这会很麻烦)。感谢您的帮助:D。
      猜你喜欢
      • 1970-01-01
      • 2011-10-23
      • 1970-01-01
      • 2023-03-19
      • 2019-02-09
      • 2021-04-21
      • 2017-01-15
      • 2019-04-01
      • 2011-04-22
      相关资源
      最近更新 更多