如何将 WPF UserControl 留在 UserControl 内的某个地方?
How to leave WPF UserControl somewhere inside UserControl?
我正在 WPF 中制作一个 UC(用户控件)。我在 UC 中有一些文本框。当用户在其中一个上按下 "Return key" 时,我想离开 UC。我希望 return 键像主 window 中的 Tab 键一样处理。我该如何实施?
我在搜索中找到 this post,它是我问题的答案。
想法是有一个名为 SendKeys* 的 class 并在控件的按下事件中使用它的方法。
public static class SendKeys
{
/// <summary>
/// Sends the specified key.
/// </summary>
/// <param name="key">The key.</param>
public static void Send(Key key)
{
if (Keyboard.PrimaryDevice != null)
{
if (Keyboard.PrimaryDevice.ActiveSource != null)
{
var e1 = new KeyEventArgs(Keyboard.PrimaryDevice, Keyboard.PrimaryDevice.ActiveSource, 0, key) {RoutedEvent = Keyboard.KeyDownEvent};
InputManager.Current.ProcessInput(e1);
}
}
}
}
然后像这样使用它:
private void textBoxesKeyDown(object sender, KeyEventArgs e) {
switch (e.Key)
{
case Key.Return:
SendKeys.Send(Key.Tab);
break;
}
}
*注意: SendKeys 是 WinForm 中的 class,WPF 中不存在。顺便说一下,您可以使用这些代码来实现。
我正在 WPF 中制作一个 UC(用户控件)。我在 UC 中有一些文本框。当用户在其中一个上按下 "Return key" 时,我想离开 UC。我希望 return 键像主 window 中的 Tab 键一样处理。我该如何实施?
我在搜索中找到 this post,它是我问题的答案。
想法是有一个名为 SendKeys* 的 class 并在控件的按下事件中使用它的方法。
public static class SendKeys
{
/// <summary>
/// Sends the specified key.
/// </summary>
/// <param name="key">The key.</param>
public static void Send(Key key)
{
if (Keyboard.PrimaryDevice != null)
{
if (Keyboard.PrimaryDevice.ActiveSource != null)
{
var e1 = new KeyEventArgs(Keyboard.PrimaryDevice, Keyboard.PrimaryDevice.ActiveSource, 0, key) {RoutedEvent = Keyboard.KeyDownEvent};
InputManager.Current.ProcessInput(e1);
}
}
}
}
然后像这样使用它:
private void textBoxesKeyDown(object sender, KeyEventArgs e) {
switch (e.Key)
{
case Key.Return:
SendKeys.Send(Key.Tab);
break;
}
}
*注意: SendKeys 是 WinForm 中的 class,WPF 中不存在。顺便说一下,您可以使用这些代码来实现。