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