首页 > 解决方案 > 单击 UserControl 内的按钮不会触发 UserControls MouseDown 事件

问题描述

我有一个Page,里面我生成了几个副本UserControl。当UserControl_MouseDown 事件被触发时,页面应该做一些事情。一切正常,直到用户单击 aUserControl存在的部分Control。如您所料,Control 防止UserControl_MouseDown事件触发。

//Fired when the StackPanel is clicked but not when the TextBox is.
private void UserControl_MouseDown(object sender, MouseButtonEventArgs e)
{
    //Do stuff
}

用户控制

<StackPanel>
    <TextBox/>
</StackPanel>

标签: c#wpf

解决方案


由于控件倾向于吞下事件,因此您可以使用PreviewMouseDown-Event:

<UserControl PreviewMouseDown="UserControl_MouseDown">
    <StackPanel>
        <TextBox />
    </StackPanel>
</UserControl>

阅读:https ://docs.microsoft.com/en-us/dotnet/api/system.windows.uielement.previewmousedown?view=netframework-4.8


推荐阅读