单击 UserControl 内的按钮不会触发 UserControls MouseDown 事件

Clicking a Button Inside a UserControl won't fire the UserControls MouseDown Event

我有一个Page,里面我生成了几个副本UserControl。该页面应该做的事情 当 UserControl_MouseDown 事件 被触发时。一切正常,直到用户点击 在 UserControl 的一部分,其中存在 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>

由于控件倾向于吞噬事件,因此您可以使用 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