uwp:如何将按钮单击事件传递给默认处理程序

uwp: how to pass Button click event to default handler

我想处理 Button Click 事件,做一些事情,然后让默认处理程序执行。

这是我拥有的:

<Button ... Click="OnMoreClicked" />

这是我的经纪人

void onMoreClicked (object sender, RoutedEventArgs e)
{
  ... do something ...
  ... continue with default button handler ...
}

编辑:

该按钮会激活一个弹出窗口,因此它已经有一个处理程序来执行此操作,我想确保该处理程序得到执行。

编辑 2:我的示例代码太少了。请看这个:

<Button ... Click="onMoreClicked">
  <Button.Flyout > 
   ...
  </Button.Flyout>
</Button>

public void onMoreClicked (object sender, RoutedEventArgs e)
{
  ... do something ...
  ... call default handler to show flyout ...
}

在显示 Flyout 之前调用 Click 事件处理程序。

例如,您在事件处理程序中更改 ButtonBackground

private void onMoreClicked(object sender, RoutedEventArgs e)
{
    Button button = (Button)sender;
    button.Background = new SolidColorBrush(Colors.AliceBlue);
}

...仍然看到 Flyout:

您还可以处理 MenuFlyoutOpenedOpeningClosedClosing 事件。

或者使用 AttachedFlyout 并使用 ShowAttachedFlyout 方法以编程方式显示它:

private void Button_Click(object sender, RoutedEventArgs e)
{
    Button button = (Button)sender;
    //...
    Flyout.ShowAttachedFlyout(button);
}

XAML:

<Button Content="Button With Flyout" Click="Button_Click">
    <FlyoutBase.AttachedFlyout>
        <MenuFlyout>
            <MenuFlyoutItem Text="Edit" />
        </MenuFlyout>
    </FlyoutBase.AttachedFlyout>
</Button>