【发布时间】:2013-02-13 09:58:50
【问题描述】:
我有一个 WPF 应用程序,它从 3rd 方 API 接收 FrameworkElement 对象。
我想在这些对象上注册事件。
这可能吗?这不起作用:
public void DisplayControl(FrameworkElement control)
{
control.MouseEnter += new MouseEventHandler(Control_MouseEnter);
control.MouseDown += new MouseButtonEventHandler(Control_MouseDownFromElement);
VideoGrid.Children.Add(control);
}
void Control_MouseDownFromElement(object sender, EventArgs e)
{
lblOutput.Content = string.Format("Sender is: " + sender.ToString());
}
void Control_MouseEnter(object sender, EventArgs e)
{
(sender as FrameworkElement).Focus();
}
【问题讨论】:
-
为什么这不起作用?如果控件已经是另一个控件的子控件,则不能将其添加到
VideoGrid。 -
在这种特定情况下,控件是包含 WinForm 控件的 WindowsFormsHost,然后 DisplayControl 接收它已经包装。控件正确显示但不触发事件。
标签: wpf events mouseevent frameworkelement