未左键单击 Interaction.Triggers 按钮时 WPF 应用程序崩溃

Posted

技术标签:

【中文标题】未左键单击 Interaction.Triggers 按钮时 WPF 应用程序崩溃【英文标题】:WPF Application crashes when not left clicking an Interaction.Triggers button 【发布时间】:2021-10-10 06:25:21 【问题描述】:

我有一个带有自定义标题栏的应用程序。在标题栏中,我有一个关闭按钮来关闭应用程序。这是通过 WPF 中的 Interaction.Triggers 直接完成的,无需任何代码。

<i:Interaction.Triggers>
     <i:EventTrigger EventName="Click">
         <i:CallMethodAction MethodName="Close" TargetObject="Binding RelativeSource=RelativeSource Mode=FindAncestor, AncestorType=Window"/>
     </i:EventTrigger>
 </i:Interaction.Triggers>

我的问题是,如果我左键单击,这段代码可以正常工作,但是当我使用不同的鼠标按钮时,让它右键单击或鼠标中键,应用程序将崩溃而没有错误。

当您在代码中包含按钮逻辑时,我已经看到了如何避免崩溃

WPF application get crashed on pressing right mouse button

但这不适用于我的情况,或者我不知道如何应用这些知识

如果有人知道如何在不将逻辑移出 XAML 的情况下修复它,请告诉我。

【问题讨论】:

【参考方案1】:
                <i:Interaction.Triggers>
                    <i:EventTrigger EventName="MouseDown">
                        <i:CallMethodAction MethodName="DragMove" TargetObject="Binding RelativeSource=RelativeSource Mode=FindAncestor, AncestorType=Window"/>
                    </i:EventTrigger>
                </i:Interaction.Triggers>

这就是问题所在,我在同一个对象上有这个事件和问题中的事件。我通过将 DragMove 事件隔离到没有 CloseButton 的对象来修复它,反之亦然

【讨论】:

以上是关于未左键单击 Interaction.Triggers 按钮时 WPF 应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

鼠标左键单击的脚本vbscript

OD怎样给鼠标左键单击下断点

WPF手柄拖放以及左键单击

Swift:右键/左键单击 NSStatusBar

delphi 模拟键盘法对当前窗口鼠标左键单击最小化怎么做?

将鼠标移动到位置并左键单击