Winui 3 - Как установить фокус на кнопку ContentDialogC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Winui 3 - Как установить фокус на кнопку ContentDialog

Сообщение Anonymous »

У меня есть приложение Winui 3, написанное в C#, которое показывает ContentDialog, чтобы попросить пользователя подтвердить делеции файлов. В диалоге есть флажок, который пользователь может быть проверен, чтобы скрыть диалог от отображения в будущем: < /p>

Хотя это работает, у меня есть проблема с удобством использования. Поведение по умолчанию для открытия ContentDialog - это установить фокус на первом интерактивном элементе, который является флажком. Я не хочу этого. Я хочу сосредоточиться на кнопке по умолчанию, которая является закрытой. Это самый безопасный неразрушающий элемент пользовательского интерфейса. обработчик событий, но навигация по последующей иерархии не является простым (

Код: Выделить всё

FindName("CloseButton")
, например, не работает), и я не могу не думать, что есть либо более прямой способ получить доступ к кнопке, либо кто -то написал помощник, чтобы сделать то же самое.
Я также попытался добавить обработчик событий gettiveFocus для флага и выполнить args.tracancel () Если диалог только что открылся, но это фактически в итоге начнуло фокус на родительское окно, которое Определенно не то, что я хочу! < /p>
, чтобы воссоздать эту проблему: < /p>
  • Создать новый проект в визуализации Студия. Выберите «Пустое приложение, упакованное (winui 3 в настольном компьютере)» в качестве шаблона проекта.
  • Назовите проект "Checkboxtest".
    < /li>
    заменить mainwindow.xaml < /code> на XAML ниже: < /p>
    < /li>
    < /ol> Заменить код mainwindow.xaml.cs с:
< Br />

Код: Выделить всё

using System;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Input;

namespace CheckboxTest;

public sealed partial class MainWindow : Window
{
public MainWindow()
{
this.InitializeComponent();
this.Content.KeyUp += Content_KeyUp;
}

private async void Content_KeyUp(object sender, KeyRoutedEventArgs e)
{
if (e.Key == Windows.System.VirtualKey.Delete)
{
DeleteConfirmationDialog.XamlRoot = Content.XamlRoot;
if (await DeleteConfirmationDialog.ShowAsync() == ContentDialogResult.Primary)
{
// Do delete operation...
}
}
}
}
  • Запустите проект.
  • Нажмите Удалить и увидите, что в появившемся диалоговом окне подтверждения установлен флажок.


Подробнее здесь: https://stackoverflow.com/questions/793 ... log-button
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • WinUI 3 – Как установить фокус на кнопку ContentDialog
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • WinUI 3 – Как установить фокус на кнопку ContentDialog
    Anonymous » » в форуме C#
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Winui 3 - Как установить фокус на кнопку ContentDialog
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • WinUI 3 – Как установить фокус на кнопку ContentDialog
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Winui 3 - Как установить фокус на кнопку ContentDialog
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»