Vorrei creare un'applicazione Windows desktop che possa essere utilizzata da mia figlia. Il caso d'uso è che le do una tastiera e avvio questa applicazione in modo che lei possa premere qualsiasi tasto che desidera. L'applicazione può visualizzare qualcosa (ad esempio le lettere stampate in caratteri grandi, o immagini, ecc.) E impedisce a mia figlia di cancellare/modificare le cose da/sul mio computer.Come mantenere l'attenzione su un'applicazione desktop WPF?
Ho alcune difficoltà con la gestione delle chiavi speciali. Posso disabilitare ALT + F4 con la seguente tecnica ma non posso controllare le chiavi ALT + TAB e Win in questo modo.
public MainWindow()
{
InitializeComponent();
this.KeyDown += new KeyEventHandler(OnButtonKeyDown);
}
protected override void OnPreviewKeyDown(KeyEventArgs e)
{
if (Keyboard.Modifiers == ModifierKeys.Alt && e.SystemKey == Key.F4)
{
e.Handled = true;
}
else
{
base.OnPreviewKeyDown(e);
}
}
ho trovato an article che disattiva tali funzionalità quando l'applicazione è attiva, ma penso che abbastanza fragile per l'uscita non prevista applicazione.
Quello che ho finalmente fatto è una soluzione che funziona ma non mi sembra troppo professionale.
public MainWindow()
{
InitializeComponent();
System.Windows.Threading.DispatcherTimer dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
dispatcherTimer.Tick += OnTimerTick;
dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 100);
dispatcherTimer.Start();
}
private void OnTimerTick(object sender, EventArgs e)
{
this.Activate();
this.Focus();
}
Come potete vedere ho creato un timer che riporta di nuovo l'attenzione di tanto in tanto. In questo modo, se premi il tasto Win o ALT + TAB, l'applicazione verrà ripristinata.
Come posso mantenere l'attenzione sulla mia applicazione in modo più professionale? Sto pensando a una soluzione che rileva quando l'applicazione perde la messa a fuoco (per qualsiasi motivo) e ripristina la messa a fuoco.
In cima alla mia testa, penso che ci sia anche "OnFocusLost" che potresti implementare. Non sono sicuro che funzioni con tutti i WIn-key e roba del genere. –
Perché non creare semplicemente un altro utente, dove tutto ciò che ha è questo programma e tutto il resto è bloccato? Poi basta semplicemente passare Utente, e quando vuoi tornare indietro, cambia Utente (e inserisci la tua password) –