gpt4 book ai didi

.net - 使用方向键在 Canvas 内移动控件

转载 作者:行者123 更新时间:2023-12-04 06:43:17 25 4
gpt4 key购买 nike

我在 Canvas 元素中有许多控件,我希望能够使用箭头/方向键(向上、向下、向左、向右)在 Canvas 内移动它们。在 WPF/代码隐藏中执行此操作的最简单方法是什么?有没有一种惯用的 WPF 方式来做到这一点?

我想我应该澄清一下:我希望能够独立移动每个控件;我不想同时移动所有控件。

最佳答案

这是我的解决方案:

一、捕获按键按下事件

EventManager.RegisterClassHandler(typeof(MainWindow), UIElement.KeyDownEvent, new KeyEventHandler(KeyDownHandler));

然后找出谁发送了事件并相应地移动它。
void KeyDownHandler(object sender, KeyEventArgs e)
{
UIElement element = e.OriginalSource as UIElement;
if (element != null)
{
double left = Canvas.GetLeft(element);
if (Double.IsNaN(left)) left = 0;
double top = Canvas.GetTop(element);
if (Double.IsNaN(top)) top = 0;

switch (e.Key)
{
case Key.Left: left--; break;
case Key.Right: left++; break;
case Key.Up: top--; break;
case Key.Down: top++; break;
}

Canvas.SetLeft(element, left);
Canvas.SetTop(element, top);
}
e.Handled = true;
}

关于.net - 使用方向键在 Canvas 内移动控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3992278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com