我有一个 WPF 窗口,它需要几个 WindowsFormHost 控件。我注意到,如果我像这样对控件进行建模,那么异常不会浮出水面并且会被静默处理,即仅使用 SharpDevelop 的调试选项“处理异常时暂停”才可见。
我怎样才能避免这种行为?
我已经通过在 Window 的 Loaded Event Handler 代码中抛出异常来测试这一点。如果我注释掉其中一个 WindowsFormsHost 控件,则异常处理正常并且代码中断,但如果如下面的代码所示,则显示窗口,就好像捕获了异常一样。
<?xml version="1.0" encoding="utf-8"?>
<Window
x:Class="TEST.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="TEST"
Height="300"
Width="300">
<Grid>
<Grid.RowDefinitions>
<RowDefinition
Height="150" />
<RowDefinition
Height="150" />
</Grid.RowDefinitions>
<WindowsFormsHost Grid.Row="0" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" />
<WindowsFormsHost Grid.Row="1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" />
</Grid>
</Window>
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(Window1_Loaded);
}
void Window1_Loaded(object sender, RoutedEventArgs e)
{
throw new ApplicationException("TEST");
}
}