我想創建一個可供我女兒使用的Windows桌面應用程序。用例是我給她一個鍵盤,我啓動這個應用程序,以便她可以按任何她想要的鍵。應用程序可以顯示某些內容(例如,按下的大字母或圖片等),並阻止我的女兒從我的電腦上刪除/修改內容。如何將重點放在WPF桌面應用程序上?
我有一些特殊的鍵處理困難。我可以通過以下技術禁用ALT + F4,但我無法通過這種方式控制ALT + TAB和Win鍵。
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);
}
}
我發現an article它禁用這些功能,當應用程序是活動的,但我認爲這對於非預期的應用程序退出相當脆弱。
我最終做的是一種解決方法,但不會感覺太專業。
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();
}
正如你可以看到我創建了一個定時器,使焦點回到不時。這樣,如果按下Win Key或ALT + TAB,它將使應用程序恢復。
如何以專業的方式將注意力集中在我的應用程序上?我正在考慮一個解決方案,該解決方案可以檢測應用程序何時失去焦點(出於任何原因)並將焦點設置回來。
關閉我的頭頂,我認爲有可能實現的「OnFocusLost」。不知道它是否適用於所有WIn-key和東西。 –
爲什麼不只是創建另一個用戶,它擁有的只是這個程序,而其他所有內容都被鎖定了?然後你只需切換用戶,當你想回來時,切換用戶(並輸入你的密碼) –