检测 WPF 应用程序是 运行 还是在 Visual Studio windows 可视化工具中
Detect if WPF application is running or in Visual Studio windows visualizer
我有一个 WPF 应用程序,它在加载主要 window 时打开一个弹出窗口。问题是当我在 Visual Studio 2013 的解决方案资源管理器中 select .xaml 文件时, 弹出窗口 "pops" 即使应用程序不是 运行。我想这是一种预期的行为,因为可视化工具需要执行代码才能呈现页面布局,但现在我每次加载页面时都需要关闭它......我不能暂时禁用这个弹出窗口,因为它有一些应用程序的启动逻辑(selection of a location,...)。
这里是弹窗触发器的代码
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 禁用 Loaded
事件?目标是仍然能够看到该页面以便于编辑。
EDIT :这个问题是重复的。但是 this answer 对我有用。
void GeneralProcess_Loaded(object sender, RoutedEventArgs e)
{
if (DesignerProperties.GetIsInDesignMode(this))
return;
var popup = new StationSelect();
popup.Owner = Window.GetWindow(this);
popup.ShowDialog();
}
我有一个 WPF 应用程序,它在加载主要 window 时打开一个弹出窗口。问题是当我在 Visual Studio 2013 的解决方案资源管理器中 select .xaml 文件时, 弹出窗口 "pops" 即使应用程序不是 运行。我想这是一种预期的行为,因为可视化工具需要执行代码才能呈现页面布局,但现在我每次加载页面时都需要关闭它......我不能暂时禁用这个弹出窗口,因为它有一些应用程序的启动逻辑(selection of a location,...)。
这里是弹窗触发器的代码
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 禁用 Loaded
事件?目标是仍然能够看到该页面以便于编辑。
EDIT :这个问题是重复的。但是 this answer 对我有用。
void GeneralProcess_Loaded(object sender, RoutedEventArgs e)
{
if (DesignerProperties.GetIsInDesignMode(this))
return;
var popup = new StationSelect();
popup.Owner = Window.GetWindow(this);
popup.ShowDialog();
}