WPF 鼠标按下事件不会触发

Posted

技术标签:

【中文标题】WPF 鼠标按下事件不会触发【英文标题】:WPF Mouse Down Event won't fire 【发布时间】:2013-07-23 23:59:13 【问题描述】:

我必须在这里做一些愚蠢的事情,但是当我单击 UserControl 时,我无法触发 MouseDown 事件。快把我逼疯了。

这是 UserControl 的 XAML:

<UserControl x:Name="cusTextBox" x:Class="StoryboardTool.CustomTextBox"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300" MouseDown="cusTextBoxControl_MouseDown">
    <Grid>
        <RichTextBox x:Name="richTextBox">
            <RichTextBox.ContextMenu>
                <ContextMenu>
                    <MenuItem x:Name="ContextMenuBringForward" Header="BringForward" Click="ContextMenuBringForward_Click"/>
                    <MenuItem x:Name="ContextMenuSendBackward" Header="SendBackward" Click="ContextMenuSendBackward_Click"/>
                </ContextMenu>
            </RichTextBox.ContextMenu>
        </RichTextBox>
    </Grid>
</UserControl>

代码背后:

private void cusTextBoxControl_MouseDown(object sender, MouseButtonEventArgs e)
        
            selected = (CustomTextBox)sender;
        

为什么当我单击用户控件时不会触发?

【问题讨论】:

【参考方案1】:

MouseDown 由 RichTextBox 处理。请改用 PreviewMouseDown。

【讨论】:

以上是关于WPF 鼠标按下事件不会触发的主要内容,如果未能解决你的问题,请参考以下文章

如果按下键,则不会触发鼠标交互的 JavaFX 事件

WPF,强制捕获鼠标事件,鼠标移出控件外依然可以执行强制捕获的鼠标事件

WPF 鼠标按下事件没有坐标

wpf中combox的点击事件是啥

更改 WPF 组合框以对鼠标按下做出反应

WPF:一个文本框,它具有在按下 Enter 键时触发的事件