我有一個WPF用戶控件在一個WinForm:拍攝鍵
綠色的部分是WPF用戶控件..
的用戶控件代碼波紋管:
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
protected override void OnPreviewKeyUp(KeyEventArgs e)
{
base.OnPreviewKeyUp(e);
MessageBox.Show(e.Key.ToString());
}
}
XAML:
<UserControl>
<Grid Background="DarkGreen">
<Label Content="Label" Margin="64,105,0,0" Name="label1" />
</Grid>
</UserControl>
每次打開tabPage2我都需要「聽」鍵盤命令。
實際的代碼不起作用(打開tabPage2時按下鍵盤時的任何消息)。
爲什麼?
EDIT 1
更新一些的WinForms代碼:
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.tabControl1.SelectedIndex == 1)
{
ElementHost elHost = (this.tabControl1.SelectedTab.Controls[0] as ElementHost);
bool success = false;
if (elHost != null)
{
success = elHost.Focus();
Console.WriteLine("Success : {0}", success);
}
}
}
結果:
Function: WindowsFormsApplication2.Form1.tabPage2_Enter Function: WindowsFormsApplication2.Form1.tabControl1_SelectedIndexChanged Success : True
但是,結果是相同的:任何使用keyUp由WPF捕獲用戶控件。