0

次の問題があります。ボタンのクリックで小さなキャンバスを生成したいのですが、生成後にキーを押すイベントで移動したいのですが、イベントでキャンバスが表示されません。どうすれば見えるようにできますか?(XAMLではなくWPFのソースコードで)

public void Button_Click_1(object sender, RoutedEventArgs e)
{   
    Canvas c = new Canvas();
    c.Height = System.Windows.SystemParameters.PrimaryScreenHeight;
    c.Width = System.Windows.SystemParameters.PrimaryScreenWidth;
    c.Loaded += c_Loaded;
    Grid.Children.Add(c);

    Canvas ship = new Canvas();
    ship.Background = Brushes.Aquamarine;
    ship.Height = 30;
    ship.Width = 30;
    ship.KeyDown += ship_KeyDown;
    Canvas.SetTop(ship, 50);
    c.Children.Add(ship);  
}

void ship_KeyDown(object sender, KeyEventArgs e)
{
    canvas.Setleft(ship, canvas.Getleft(ship) +10);  //here i can not see the object "ship" :(          
}
4

3 に答える 3

2

パラメータ送信者を使用します:

Canvas ship = (Canvas) sender;
于 2013-01-11T14:07:53.587 に答える
0

cを追加するか、layoutroot`に発送する必要があります

于 2013-01-11T14:07:07.277 に答える
0

最も簡単な方法は、これを<list>ofに追加し、 -loopUIElementで変更することですforeach

于 2013-05-29T09:10:09.383 に答える