在工程中有时会在windows的工程中,调用WPF的控件,通常WPF的控件继承userControl,在userControl中我们实现键盘事件
可是在处理键盘事件时,在userControl中的Grid中定义事件KeyDown="Tick_OnKeyDown",下面是事件的实现:
private void Tick_OnKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Up)
{ //放大
PicZoom(2);
e.Handled = true;
}
else if (e.Key == Key.Down)
{ //缩小
PicZoom(1);
e.Handled = true;
}
}
如果不写:e.Handled = true;,那么2次方向键才会实现一次。原因是方向键在切换窗体上的控件的焦点。
在windows窗体中使用WPF的控件:
重载窗体的OnLoad,如下:
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (!DesignMode)
{
kLineCanvas = new WpfPicture.KLine.KLineCanvas(); //WPF的控件
elementHost1.Child = kLineCanvas;
}
}