C# 检测WPF应用程序是否正在运行或在Visual Studio windows可视化工具中运行

C# 检测WPF应用程序是否正在运行或在Visual Studio windows可视化工具中运行,c#,wpf,visual-studio-2013,C#,Wpf,Visual Studio 2013,我有一个WPF应用程序,当主窗口加载时会打开一个弹出窗口。问题是,当我在Visual Studio 2013的解决方案资源管理器中选择.xaml文件时,即使应用程序未运行,弹出窗口也会弹出。我认为这是一种预期的行为,因为可视化工具需要执行代码来呈现页面布局,但现在我需要在每次加载页面时关闭它。。。我无法暂时禁用此弹出窗口,因为它有一些用于应用程序选择位置的启动逻辑 这是弹出式触发器的代码 public GeneralProcess() //usercontrol { Initialize

我有一个WPF应用程序,当主窗口加载时会打开一个弹出窗口。问题是,当我在Visual Studio 2013的解决方案资源管理器中选择.xaml文件时,即使应用程序未运行,弹出窗口也会弹出。我认为这是一种预期的行为,因为可视化工具需要执行代码来呈现页面布局,但现在我需要在每次加载页面时关闭它。。。我无法暂时禁用此弹出窗口,因为它有一些用于应用程序选择位置的启动逻辑

这是弹出式触发器的代码

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();
}
有没有办法知道应用程序是否正在运行或我是否在可视化工具中,或者有没有办法仅为visual studio禁用Loadedevent?我们的目标是仍然能够看到页面以便于编辑


编辑:这个问题是重复的。但是对我有效。

不起作用:未定义IsInDesignTool。我在.NET4.5中。但是很好的方法,我将搜索更多关于DesignerProperty的信息。谢谢!对于那些来到这里的人,请确保重建项目,并在完成此操作后重新打开.xaml文件
void GeneralProcess_Loaded(object sender, RoutedEventArgs e)
{
    if (DesignerProperties.GetIsInDesignMode(this))
        return;
    var popup = new StationSelect();
    popup.Owner = Window.GetWindow(this);
    popup.ShowDialog();
}