Microsoft Surface:在哪里定义仅在启动期间调用的方法?

时间:2011-01-12 15:08:56

标签: c# .net wpf pixelsense

我有一些方法,只应在启动应用程序时调用。现在,我将方法放在OnApplicationActivated:

private void OnApplicationActivated(object sender, EventArgs e)
{
   Sound.loadSounds();             
   GetLocalProjects();
   GetProjects();            
}

但是如果应用程序处于“暂停”状态(显示shell)并被激活,则也会调用OnApplicationActivated。我怎么能避免这个?我想只在启动时调用这些方法。

3 个答案:

答案 0 :(得分:1)

我对Microsoft Surface一无所知,所以我不能告诉你是否有其他事件可以连接,但是不能轻易修复使用布尔实例变量来检查初始化是否有已经完成了吗?

bool _isInitialized = false;
private void OnApplicationActivated(object sender, EventArgs e) {    
  if( !_isInitialized ){
    Sound.loadSounds();
    GetLocalProjects();
    GetProjects();          
    _isInitialized = true;   
  }
}

答案 1 :(得分:0)

boolean startup = true;
private void OnApplicationActivated(object sender, EventArgs e)
{
   If (startup)
   {
   Sound.loadSounds();             
   GetLocalProjects();
   GetProjects();
   startup = false; 
   }           
}

我能提出的最快的解决方案

答案 2 :(得分:0)

如何为非Surface应用程序执行此操作?在主窗口中覆盖OnInitialized。