private void Page_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Right)
{
if (shipPosition < right)
{
x = x + 10;
shipPosition = shipPosition + 10;
ship.Margin = new Thickness(shipPosition, y, 0, 0);
}
}
}
XAML - KeyDown="Page_KeyDown"
我有一个名为ship的矩形,上面是移动它的功能,按下右箭头键或左键箭头键执行。出于某种原因,这不起作用。 “KeyDown =”Page_KeyDown“”是将按钮按下与事件相关联的xaml。还有另一个网格包含按钮,每次计时器滴答时都会移动,当我点击一个按钮突出显示它时,然后按箭头键,船开始移动,突出显示的按钮也会改变。有谁知道发生了什么事?
更新:我删除了按钮上的is focusable属性,然后一起停止了船只移动。所以我认为这与改变对按钮的关注有关。
答案 0 :(得分:2)
试试这个:
Keyboard.AddKeyDownHandler(this, Page_KeyDown);
将它放在你的控件的适当方法(构造函数,初始化,......)
public MainWindow()
{
InitializeComponent();
Keyboard.AddKeyDownHandler(this, Page_KeyDown);
}