Программно нажмите кнопку PrimaryButton ContentDialog - PullRequest
0 голосов
/ 06 мая 2018

В UWP, Как вы можете программно щелкнуть кнопку PrimaryButton ContentDialog, когда событие KeyDown текстового поля обнаруживает, что была нажата Enter? Просто попробуйте добавить сочетание клавиш, чтобы принять ответ. В текстовом поле и закройте все диалоговое окно с клавиатуры без необходимости перемещать мышь и нажимать кнопку ОК.

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>

Ответы [ 3 ]

0 голосов
/ 07 мая 2018

Используйте следующий код:

RoutedEventArgs f;

private void A1TextBox_KeyDown(object sender, KeyRoutedEventArgs e)
{
    if (e.Key == Windows.System.VirtualKey.Enter)
    {
        ContentDialog_PrimaryButtonClick (Sender, f);       
    }
}

, чем он запустит событие PrimaryButtonClick.

0 голосов
/ 07 мая 2018

Документация UWP ContentDialog гласит:

"При желании вы можете выбрать дифференцирование одной из трех кнопок в качестве кнопки по умолчанию для диалогового окна. Используйте свойство DefaultButton , чтобы выделить одну из кнопок. Эта кнопка получит ударение Кнопка визуальной обработки, автоматически отвечает на клавишу ВВОД и получает фокус при открытии диалога, если только содержимое диалога не содержит фокусируемых элементов."

Измените ContentDialog следующим образом:

<ContentDialog … DefaultButton="Primary">
0 голосов
/ 07 мая 2018

Вы пытались сделать кнопку, которую вы хотите нажать "AcceptButton"?

//This goes in the form loading method
this.AcceptButton = PrimaryButton;

Это должно повернуть кнопку в синий цвет, и при нажатии клавиши ввода в форме будет вызвана функция щелчка .project

Редактировать: только что заметил, что это не для winforms.

this.DefaultButton = PrimaryButton;

Спасибо, Билл!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...