Dot-Net

如何防止新的 WPF 表單竊取焦點?

  • September 21, 2009

我編寫了一個簡單的MSN風格的程序,它將使用WCF發送和檢索消息。主窗體包含一個文本框,用於輸入要發送的消息。在後台,應用程序每隔幾秒鐘輪詢一次伺服器以獲取新消息。當收到新消息時,會打開一個新視窗來顯示它。這必須使用 Dispatcher 類在 UI 執行緒上完成。

問題是當顯示新視窗時,焦點從 TextBox 移開,因此打字被打斷。這很煩人!在MSN Messenger中,您可以在接收消息的同時繼續輸入您自己的消息。它是如何完成的?

作為一種解決方法,我在 TextBox 具有焦點時推遲彈出帶有新消息的彈出視窗,但應該有更好的方法!

答案很簡單:因為 .NET 3.5 SP1 WPF 表單有一個ShowActivated屬性。將此設置為 false ,任何被標記的表格都不會再偷走任何焦點!

引用自:https://stackoverflow.com/questions/1456529