1
나는 this question을 따라 갔지만 정상적으로 작동합니다. 그러나 포커스는 송신 컨트롤에서 제외됩니다.WPF : 대상 컨트롤에서 포커스를 빼지 않고 다른 컨트롤로 키를 보낼 수 있습니까?
내가하려는 것은 자동 완성 텍스트 상자 (텍스트 상자 및 일치하는 항목 목록이 포함 된 팝업 컨트롤)처럼 작동하는 입력 상자를 만드는 것입니다. 위로, 아래로 키를 가져 와서 팝업 컨트롤로 보내고 다른 키를 가져 와서 텍스트 상자에 보관할 수 있어야합니다.
switch (e.Key)
{
case Key.Down:
{
if (!popup.IsOpen)
{
openPopup();
}
else
{
PresentationSource source = PresentationSource.FromVisual(itemList);
if (source == null) return;
itemList.RaiseEvent(
new KeyEventArgs(Keyboard.PrimaryDevice, source, 0, e.Key)
{RoutedEvent = Keyboard.KeyDownEvent});
}
break;
}
}
위 itemList는 RaiseEvent를 호출하자마자 pop'd되고 focus가 전송되는 컨트롤입니다.