我正在将 Windows 窗体应用程序转换为 WPF,并在转换的第一部分重新使用一些 winform 控件。
为了托管 winform 控件,我使用的是 WindowsFormsHost,并且似乎正在发生的事情是 enter 按键不会导致在 winforms 按钮上触发 Button.Click 事件(但是,用鼠标和空格键单击仍然有效)。
您可以通过执行以下操作重现此行为:
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
Title="MainWindow" Height="350" Width="525">
<Grid>
<WindowsFormsHost>
<wf:Button Text="Hello" Click="Button_Click_1" />
</WindowsFormsHost>
</Grid>
我正在考虑向 WindowsFormsHost 添加一个事件处理程序来调用 Button.PerformClick 如果按下了输入并且按钮被聚焦,但我觉得一定有一些我忽略了为什么输入不会导致按钮点击发生.