Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 使用E键移动对象-对角线_Wpf_Keyboard_Wpf Controls_Key_Move - Fatal编程技术网

Wpf 使用E键移动对象-对角线

Wpf 使用E键移动对象-对角线,wpf,keyboard,wpf-controls,key,move,Wpf,Keyboard,Wpf Controls,Key,Move,我需要移动一个物体,我可以上下左右移动,但在对角线上失败,这是我移动的方式 if (e.Key == Key.Up && Canvas.GetTop(Good) > 31) { double top = Canvas.GetTop(Good); Canvas.SetTop(Good, top - 7); } if (e.Key == Key

我需要移动一个物体,我可以上下左右移动,但在对角线上失败,这是我移动的方式

if (e.Key == Key.Up && Canvas.GetTop(Good) > 31)
            {
                double top = Canvas.GetTop(Good);
                Canvas.SetTop(Good, top - 7);
            }
            if (e.Key == Key.Down && Canvas.GetTop(Good) < CanvasA.ActualHeight - 7 - Good.Height)
            {
                double down = Canvas.GetTop(Good);
                Canvas.SetTop(Good, down + 7);

            }
            if (e.Key == Key.Left && Canvas.GetLeft(Good) > -2)
            {
                double left = Canvas.GetLeft(Good);
                Canvas.SetLeft(Good, left - 7);

            }
            if (e.Key == Key.Right && Canvas.GetLeft(Good) < CanvasA.ActualWidth - Good.Width)
            {
                double right = Canvas.GetLeft(Good);
                Canvas.SetLeft(Good, right + 7);
            }
        }

    }
if(e.Key==Key.Up&&Canvas.GetTop(Good)>31)
{
double-top=Canvas.GetTop(好);
Canvas.SetTop(好,前7名);
}
if(e.Key==Key.Down&&Canvas.GetTop(Good)-2)
{
左双=Canvas.GetLeft(良好);
Canvas.SetLeft(好,左-7);
}
if(e.Key==Key.Right&&Canvas.GetLeft(Good)
一切正常,但不能单击两个按钮以对角线移动角色,
之所以少于31,是因为我在WPF中创建了菜单。

您可以通过同时增加“左”和“上”来对角移动它。很抱歉,它不起作用