0
私は、コントロールがキャンバスにドロップされたときに、単純なキーを押すだけでそのコントロールを削除できるようにする必要があるという基本的なコードがあります。動的に追加されたコントロールに基本イベントを追加する
private void PlaceElementOnCavas(UIElement element, Point point) {
Canvas.SetLeft(element, point.X);
Canvas.SetTop(element, point.Y);
// Add the event to allow the user to press delete and remove the control
element.KeyDown += (sender, e) => {
if (e.Key == Key.Delete) {
this.designCanvas.Children.Remove(element);
}
};
this.designCanvas.Children.Add(element);
}
私のコードはそうです。私のコントロールは、私が必要とするキャンバス上のポイントに正確に追加されます。
イベントハンドラは、ラムダを介して、または別のメソッドへの従来の呼び出しによって、何もしません。
私には何が欠けていますか?
'element'は何ですか? 'KeyDown'イベントを受け取るためにフォーカスが必要で、' PreviewKeyDown'自体を処理するかもしれません。コンテナのイベントに登録したいのですか? – Sinatr
@sinatrパラメータごとのUI要素です。デザイナーの表面にドラッグされたさまざまな基本コントロールにすることができます。 Aボタン、CheckBox、スライダーなど – Patrick
'Delete'キーを押す前に、まずフォーカスを設定しましたか? * "イベントハンドラは何もしません" *あなたはどのように認識していますか?それは実行されないのですか(私の考え)、または子供は 'Remove()'の後にとどまりますか?ブレークポイントを設定します。 – Sinatr