Como modificar a chamada Show () do TaskDialog () para estar bloqueando e retornar um valor quando fechado?
-
26-09-2019 - |
Pergunta
Estou usando a implementação TaskDialog do WindowsApicodePack, mas isso me incomoda que tenho que ouvir os manipuladores de cliques em seus botões até mesmo para as implementações mais básicas. Eu gostaria de converter/embrulhá -lo para que, como a antiga caixa de mensagem, ele bloqueie até fechar e depois retorne um valor com base no que foi feito. Há algo que eu possa ler para o básico sobre como fazer isso? Só não tenho idéia de por onde começar, pois não estou tão familiarizado com os fundamentos do Win32.
Solução
Caso isso ajude alguém, depois de uma leitura, descobri que a chamada do show já está bloqueando. Para retornar um valor, implementei uma classe base ExtendedTaskDialog<T>
que contém a TaskDialog
e contém um ajudante Show(Window)
método para atribuir os pais do TaskDialog e um abstrato public T Show(Window)
método. Diálogos reais derivam disso e derivam sua própria enumeração para fornecer como o tipo de base, como MyDialog : ExtendedTaskDialog<MyDialogResult>
. Então, internamente, MyDialog
Os manipuladores de cliques de Buttons '' s Defina o resultado antes de ligar para o Close
método do interno TaskDialog
.