WPF按钮不触发单击事件

斯科特·斯托

我有一个对话框,其中包含一个日历控件和一个按钮。用户在日历上选择日期后,他们单击“保存”按钮,这将执行操作并关闭对话框:

<Window...>
    <Grid x:Name="CalendarGrid">
        <Grid.ColumnDefinitions>...</Grid.ColumnDefinitions>
        <Grid.RowDefinitions>...</Grid.RowDefinitions>
        <StackPanel Grid.Column="0" Grid.Row="0" x:Name="StackPanel1">
            <Calendar x:Name="StartDate" HorizontalAlignment="Center" SelectedDatesChanged="StartDate_SelectedDatesChanged" />
        </StackPanel>
        <StackPanel Grid.ColumnSpan="2" Grid.Row="1">
            <Button x:Name="SaveButton" Content="Save" Click="SaveButton_Click" Width="50" IsDefault="True" ClickMode="Press" />
        </StackPanel>
    </Grid>
</Window>

我遇到的问题是,选择日期后,按钮无法响应单击事件-我必须双击以触发单击事件。我尝试在按钮上使用PreviewMouseLeftButtonDown,PreviewMouseDown和PreviewMouseUp事件,但是它们都无法完成此操作。

我将PreviewMouseDown放在要测试的元素上,并在第一次单击时触发。但是,在包含按钮的预览事件上放置按钮并不会响应第一次单击-我必须像按钮一样双击它。

选择日期后,我还尝试将焦点放在按钮上:

    private void StartDate_SelectedDatesChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
    {
        SaveButton.Focus();
    }

除非我正在调试并将断点放在StartDate_SelectedDatesChanged事件中,否则这也不起作用。在这种情况下,按F5继续后,按钮将获得焦点并且单击即可工作。我什至尝试将Thread.Sleep()语句放入StartDate_SelectedDatesChanged事件中,但这也不起作用。

如果有帮助,这就是我从主屏幕打开窗口的方式。首先,打开窗口的方法:

public static void SetWindowPosition(Window dialog)
{
    Window mainWindow = Application.Current.MainWindow;

    dialog.Owner = mainWindow;
    dialog.Left = mainWindow.Left + (mainWindow.ActualWidth - dialog.ActualWidth) / 2;
    dialog.Top = mainWindow.Top + (mainWindow.ActualHeight - dialog.ActualHeight) / 2.5;
}

这是调用SetWindowPosition()以打开对话框的代码:

 var dialog = new CalendarDialog();
 dialog.SetValues(Phrases.SelectDateRange, Phrases.StartingDate, Phrases.EndingDate, null, null);
 SetWindowPosition(dialog);

关于如何使它起作用的任何建议?

毫米8

尝试调用Mouse.Capture(null)你的StartDate_SelectedDatesChanged事件处理程序。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

c# 动态创建的按钮不触发单击事件

来自分类Dev

WPF命令未在图像按钮上触发单击

来自分类Dev

如何在 angular2 中使我在按钮上的 longpress 指令不触发单击或路由器事件?

来自分类Dev

单击并按住按钮时如何触发单击事件/重复调用函数

来自分类Dev

未触发单击事件 - jQuery

来自分类Dev

<a> 元素上未触发单击事件

来自分类Dev

WPF复制按钮单击不触发

来自分类Dev

当按钮处于焦点状态时,如何防止Enter键触发单击事件

来自分类Dev

动态添加WPF按钮:事件不触发

来自分类Dev

单击锚点链接后触发单击事件

来自分类Dev

触发单选按钮单击而无需单击

来自分类Dev

为什么输入中的标签会触发单击事件

来自分类Dev

jQuery在URL触发单击事件中检测哈希

来自分类Dev

通过div上的Enter键或Vue2中的其他非按钮来触发单击事件

来自分类Dev

触发单选按钮单击并记住页面刷新选择

来自分类Dev

jQuery找到最接近的按钮并触发单击

来自分类Dev

在文本框中按 Enter 以触发单击按钮

来自分类Dev

在表单标签内时不触发按钮单击事件

来自分类Dev

WPF按钮单击事件

来自分类Dev

WPF按钮单击事件

来自分类Dev

按钮单击事件未触发

来自分类Dev

按钮单击事件未触发

来自分类Dev

单击事件触发而无需单击按钮

来自分类Dev

如果从外部加载选择器,如何触发单击事件

来自分类Dev

如何在Excel用户窗体中已选择的OptionButton上触发单击事件

来自分类Dev

使用jQuery触发单击或焦点事件的正确方法是什么?

来自分类Dev

v-for创建新dom后,Vue触发单击事件

来自分类Dev

如何触发单击事件以从Angular的下拉列表中进行选择

来自分类Dev

在树视图中使用 parentUntil 或不使用它来触发单击事件以搜索节点

Related 相关文章

  1. 1

    c# 动态创建的按钮不触发单击事件

  2. 2

    WPF命令未在图像按钮上触发单击

  3. 3

    如何在 angular2 中使我在按钮上的 longpress 指令不触发单击或路由器事件?

  4. 4

    单击并按住按钮时如何触发单击事件/重复调用函数

  5. 5

    未触发单击事件 - jQuery

  6. 6

    <a> 元素上未触发单击事件

  7. 7

    WPF复制按钮单击不触发

  8. 8

    当按钮处于焦点状态时,如何防止Enter键触发单击事件

  9. 9

    动态添加WPF按钮:事件不触发

  10. 10

    单击锚点链接后触发单击事件

  11. 11

    触发单选按钮单击而无需单击

  12. 12

    为什么输入中的标签会触发单击事件

  13. 13

    jQuery在URL触发单击事件中检测哈希

  14. 14

    通过div上的Enter键或Vue2中的其他非按钮来触发单击事件

  15. 15

    触发单选按钮单击并记住页面刷新选择

  16. 16

    jQuery找到最接近的按钮并触发单击

  17. 17

    在文本框中按 Enter 以触发单击按钮

  18. 18

    在表单标签内时不触发按钮单击事件

  19. 19

    WPF按钮单击事件

  20. 20

    WPF按钮单击事件

  21. 21

    按钮单击事件未触发

  22. 22

    按钮单击事件未触发

  23. 23

    单击事件触发而无需单击按钮

  24. 24

    如果从外部加载选择器,如何触发单击事件

  25. 25

    如何在Excel用户窗体中已选择的OptionButton上触发单击事件

  26. 26

    使用jQuery触发单击或焦点事件的正确方法是什么?

  27. 27

    v-for创建新dom后,Vue触发单击事件

  28. 28

    如何触发单击事件以从Angular的下拉列表中进行选择

  29. 29

    在树视图中使用 parentUntil 或不使用它来触发单击事件以搜索节点

热门标签

归档