我如何使画布在一个事件可见

本文关键字:一个 事件 何使画 | 更新日期: 2023-09-27 17:51:16

我有以下问题,我想通过一个按钮点击生成一个小画布,生成后我想通过一个键按事件移动它,但我不能在事件中看到画布。我怎样才能使它可见?(WPF的源代码中没有XAML)

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" :(          
}

我如何使画布在一个事件可见

使用参数sender:

Canvas ship = (Canvas) sender;

您需要将您的c或ship添加到layoutroot '

最简单的方法是将其添加到UIElement<list>并使用foreach循环修改