コントロールA、コピー貼り付けなどのコマンドでRoutedCommandsを使用していて、すべてうまく動作します。 次に、四つのroutedコマンドを追加して、矢印キーを使ってオブジェクトをキャンバスの左右に移動させました。時にはうまく動作しません。最初はCanvasのFocus問題だと思っていましたが、同時に、control-Aのような他のルーティングコマンドはすべて動作しますが、矢印はそうではありません。 私は実際に何が起こっているのか分かりません。異なる変数名を持つ同じroutedコマンドです。どのように100%の時間が働き、1つが時間の50%しか働かないのですか?WPFルーテッドコマンドのみが起動する場合があります
ワーキングRoutedCommandの:
_bindings.Add(new CommandBinding(DesignerCanvas.SelectAll, SelectAll_Executed));
SelectAll.InputGestures.Add(new KeyGesture(Key.A, ModifierKeys.Control));
private void SelectAll_Executed(object sender, ExecutedRoutedEventArgs e)
{
SelectionService.SelectAll();
}
誤動作RoutedCommandの:
_bindings.Add(new CommandBinding(DesignerCanvas.MoveDown, MoveDown_Executed));
MoveDown.InputGestures.Add(new KeyGesture(Key.Down));
private void MoveDown_Executed(object sender, ExecutedRoutedEventArgs e)
{
e.Handled = true;
var selectedItems = from item in SelectionService.CurrentSelection.OfType<DesignerItem>()
select item;
if (selectedItems.Count() > 0)
{
for (int i = 0; i < selectedItems.Count(); i++)
selectedItems.ElementAt(i).Top += Option.OptionSingleton.Sensitivity;
}
}
誤動作RoutedCommandのは、ちょうどそれが、その後、私はいくつかの他のウィンドウを開き、戻ってキャンバスに来て、特に後に、ときどきます発射されていません他の経路指定コマンドが影響を受けない間に発射を停止する。この奇妙な行動を引き起こしているものは何ですか?