【问题标题】:How do I get a UWP ContentDialog's SecondaryButton to set its focus?如何让 UWP ContentDialog 的 SecondaryButton 设置焦点?
【发布时间】:2019-01-31 17:26:51
【问题描述】:

由于this 的问题,我知道如何设置控件的焦点(Windows.UI.Xaml.Controls.Control);但是,我不知道如何访问 ContentDialog 的 SeocndaryButton 以设置它的焦点。这与将其设置为 DefaultButton 不同。当我这样做时,我仍然不能只按 Enter 键来激活辅助按钮。

有人知道怎么做吗?

【问题讨论】:

  • 我试图捕捉回车键的onKeyUp,但它仍然无法让我达到预期的效果。

标签: uwp


【解决方案1】:

您可以考虑使用自定义对话框而不是使用默认按钮。你可以看看这个case。一般来说,当您自定义自己的按钮时,您可以在这些按钮中添加您想要的功能以拥有自己的逻辑。这对你有意义吗?(我已经用自定义按钮的焦点进行了测试并且它有效)

【讨论】:

  • 感谢您的回答!这确实是正确的做法。然而,我的 ContentDialog 耦合得如此紧密,以至于如果不做更多工作,我就无法“滚动我自己的”按钮。在项目的某个时刻,我会回到它并做正确的事。不过就目前而言,据我所知,您的答案是最正确的。也就是说,除非微软想为主要和次要按钮添加一个 getter :)
【解决方案2】:

目前我只能想出一个解决方法。我希望回车键的作用与我按下辅助按钮一样。当我覆盖回车键时,它从未关闭对话框,但是!!!如果我给它添加了一个隐藏,它似乎可以按预期工作。我想知道如何集中注意力,但这暂时可行。

protected override void OnKeyUp(KeyRoutedEventArgs e)
    {
        base.OnKeyUp(e);
        if (e.Key == Windows.System.VirtualKey.Enter)
        {
            ContentDialog_SecondaryButtonClick(null, null);
            this.Hide();
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多