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

问题描述 投票:4回答:1

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

我面临的问题:

  1. 弹出控件通过单击切换按钮打开。
  2. 打开弹出控件后,我试图通过单击鼠标在日历中选择日期,现在日历获得了焦点。
  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>
c# wpf popup window wpf-controls
1个回答
0
投票

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

private void Calendar_SelectedDatesChanged(object sender, SelectionChangedEventArgs e)
{
    Mouse.Capture(null);
}
© www.soinside.com 2019 - 2024. All rights reserved.