2017-08-24 25 views
0

我有一个WPF应用程序,它在加载主窗口时打开一个弹出窗口。问题是当我在Visual Studio 2013的解决方案资源管理器中选择.xaml文件时,即使应用程序未运行,弹出窗口“弹出”。我想这是一个预期的行为,因为可视化器需要执行代码才能呈现页面布局,但现在我需要在每次加载页面时关闭它...我不能暂时禁用此弹出框,因为它有一些为应用程序启动逻辑(选择位置,...)。检测WPF应用程序是否正在运行或在Visual Studio窗口可视化器中

这里是弹出触发器

public GeneralProcess() //usercontrol 
{ 
    InitializeComponent(); 
    Loaded += GeneralProcess_Loaded; 
} 

void GeneralProcess_Loaded(object sender, RoutedEventArgs e) 
{ 
    var popup = new StationSelect(); 
    popup.Owner = Window.GetWindow(this); 
    popup.ShowDialog(); 
} 

的代码有没有办法知道,如果应用程序正在运行,或者如果我在可视化,或者是有办法禁用Loaded事件只是视觉工作室 ?目标是仍然能够看到页面以便于编辑。

编辑:这个问题是重复的。但this answer为我工作。

+0

可能的[如何判断.NET代码是否由Visual Studio设计器运行]的重复项(https://stackoverflow.com/questions/73515/how-to-tell-if-net-code- is-being-running-by-visual-studio-designer) – Goufalite

回答

1
void GeneralProcess_Loaded(object sender, RoutedEventArgs e) 
{ 
    if (DesignerProperties.GetIsInDesignMode(this)) 
     return; 
    var popup = new StationSelect(); 
    popup.Owner = Window.GetWindow(this); 
    popup.ShowDialog(); 
} 
+0

不起作用:'IsInDesignTool'未定义。我在.NET 4.5中。但不错的方法,我会在这个DesignerProperties上进一步搜索。 – Goufalite

+0

更新的答案;) – Isma

+1

谢谢!对于那些来这里的人来说,确保重建项目并在完成后重新打开.xaml文件。 – Goufalite

相关问题