c# - 以编程方式单击 ContentDialog 的 PrimaryButton
问题描述
在 UWP 中,当文本框的 KeyDown 事件检测到已按下 Enter 时,如何以编程方式单击 ContentDialog 的 PrimaryButton?只是尝试添加键盘快捷方式以在文本框中接受答案并从键盘全部关闭对话框,而无需移动鼠标并单击确定。
private void A1TextBox_KeyDown(object sender, KeyRoutedEventArgs e)
{
if (e.Key == Windows.System.VirtualKey.Enter)
{
// Programmatically Click PrimaryButton Here
}
}
<ContentDialog
x:Class="App1.ContentDialog1"
Title="DialogBox"
Loaded="ContentDialog_Loaded"
PrimaryButtonText="Ok"
SecondaryButtonText="Cancel"
PrimaryButtonClick="ContentDialog_PrimaryButtonClick"
SecondaryButtonClick="ContentDialog_SecondaryButtonClick">
<Grid Name="A1Grid">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBox Name="A1TextBox" Grid.Row="0"
PlaceholderText="Search String"
TextChanged="A1TextBox_TextChanged"
KeyDown="A1TextBox_KeyDown"/>
<ScrollViewer Grid.Row="1"
ScrollViewer.VerticalScrollBarVisibility="Auto"
VerticalAlignment="Stretch">
<ListBox Name="A1ListBox" MinHeight="200"/>
</ScrollViewer>
</Grid>
</ContentDialog>
解决方案
您是否尝试过制作要单击“AcceptButton”的按钮?
//This goes in the form loading method
this.AcceptButton = PrimaryButton;
这应该将按钮变为蓝色,并且当在表单上按 enter 时将导致调用 click 函数。project
编辑:刚刚注意到这不适用于winforms。
this.DefaultButton = PrimaryButton;
谢谢比尔!
推荐阅读
- java - Spring Aggregation更新多个数组元素
- r - Github 凭证(令牌)- 使用 R 更新
- python - Pandas 使用 or 语句过滤多个条件
- python - AWS Lambda (Python3.8) 无法使用角色连接到 S3 存储桶
- amazon-web-services - AWS Lambda 请求并以异步方式等待响应
- reactjs - React Native 构建 aab
- node.js - 如何运行 Node.js 模块“windows-1252”以及 require 语句
- html - 优化图形显示
- amazon-web-services - 无法通过使用 cypress 的 amazon cognito 身份验证
- java - Java 我找不到超过 1 个正则表达式匹配