当放置在弹出窗口中时,第一次单击不会触发按钮单击事件

Button click event is not fired on first click when place inside popup

我在弹出控件中放置了一个日历控件和一个按钮控件。

我面临的问题:

  1. 通过单击切换按钮打开弹出控件。
  2. 打开弹出控件后,我尝试select鼠标单击日历中的日期,现在日历获得焦点。
  3. 现在我尝试单击弹出窗口中的按钮,但按钮单击事件仅在第二次单击时触发。

问题是在第一次点击时弹出窗口获得焦点,只有在第二次点击时事件触发。

代码

<Popup
    x:Name="Popup"
    Grid.Row="1"
    AllowsTransparency="True"
    Focusable="True"
    IsOpen="False"
    Placement="Bottom"
    PlacementTarget="{Binding ElementName=Border}"
    StaysOpen="False">
    <Border>
        <StackPanel>
            <Calendar></Calendar>
            <Button Click="Button_Click"></Button>
        </StackPanel>
    </Border>
</Popup>

处理 CalendarSelectedDatesChanged 事件并调用 Mouse.Capture(null):

private void Calendar_SelectedDatesChanged(object sender, SelectionChangedEventArgs e)
{
    Mouse.Capture(null);
}