嗨我有一個代碼要寫窗口(WPF窗口)激活像點擊窗口或使用alt /選項卡。窗口是主窗體(Windows應用程序)的孩子。我用ToolWindow作爲windowstyle。Windows.Activated在wpf多次觸發
它具有以更新在激活
問題是它觸發多次xamdatagrid。它應該被解僱一次。我不想讓我的代碼多次運行
如何使其工作。請幫助
嗨我有一個代碼要寫窗口(WPF窗口)激活像點擊窗口或使用alt /選項卡。窗口是主窗體(Windows應用程序)的孩子。我用ToolWindow作爲windowstyle。Windows.Activated在wpf多次觸發
它具有以更新在激活
問題是它觸發多次xamdatagrid。它應該被解僱一次。我不想讓我的代碼多次運行
如何使其工作。請幫助
我完成了。 我用下面的代碼
private void OnAttributeHistoryWindowActivated(object sender, EventArgs e)
{
var win = ((RoutedEventArgs)(e)).Source as AttributeHistoryWindow;
//My Code
}
的第一行代碼被射擊後面的活性事件。它永遠不會去我的代碼的下一行enter code here
現在我使用下面的代碼,它的工作原理。
private void OnAttributeHistoryWindowActivated(object sender, EventArgs e)
{
var win = sender as AttributeHistoryWindow;
//My Code
}
現在它燃燒一次。
從Window.Activated
Event頁面上MSDN:
當窗口成爲前臺窗口時發生。
的Window.Activated
事件是應該被多次調用,因此,也許它並不適合你處理的最佳活動。或者,您可以添加一個bool isFirstTime
變量並用它來限制您的代碼只被調用一次。就拿這個例子:
private bool isFirstTime = true;
...
private void WindowActivated(object sender, EventArgs e)
{
if (isFirstTime)
{
isFirstTime = false;
// do something here just once
}
}
然而,由於(從鏈接的頁面)...
一個窗口被激活(成爲前臺窗口)時:
•窗口是第一打開。
•用戶通過用鼠標選擇窗口,按ALT + TAB或從任務管理器切換到窗口。
•用戶單擊窗口的任務欄按鈕。
...你可能會發現這不適合你。
發佈您的代碼?我們不能給我們不知道的代碼提供建議。 – nvoigt 2015-01-21 10:59:19
每當您的窗口顯示在最前面或禁用/啓用窗口時,都會調用Windows.Activated。 – rraszewski 2015-01-21 11:49:30