【问题标题】:Button click event is not fired on first click when place inside popup放置在弹出窗口内时,第一次单击时不会触发按钮单击事件
【发布时间】:2020-07-05 20:17:12
【问题描述】:

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

我面临的问题:

  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>

【问题讨论】:

  • @mm8 我的问题是我需要在日历中选择日期后处理一些按钮点击功能,但它只有在第二次点击按钮时才会成功

标签: c# wpf popup window wpf-controls


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多