C# 通过单击按钮访问画布名称

C# 通过单击按钮访问画布名称,c#,wpf,xaml,canvas,C#,Wpf,Xaml,Canvas,我的窗口有50多个按钮,每个按钮都有一个画布 按钮1,例如: <Button x:Name="button1" HorizontalAlignment="Left" Margin="98,292,0,0" VerticalAlignment="Top" Width="85" Height="115" FontSize="25" Background="Red" BorderBrush="White" Foreground="White" Click="but

我的窗口有50多个按钮,每个按钮都有一个画布

按钮1,例如:

                <Button x:Name="button1" HorizontalAlignment="Left" Margin="98,292,0,0" VerticalAlignment="Top" Width="85" Height="115" FontSize="25" Background="Red" BorderBrush="White" Foreground="White" Click="button1_Click" MouseDown="button1_MouseDown">
                    <StackPanel>
                        <TextBlock TextAlignment="Center" RenderTransformOrigin="-0.643,1.424" HorizontalAlignment="Center" VerticalAlignment="Center"><Run Text="1"/></TextBlock>
                        <Canvas x:Name="canvas1"/>
                    </StackPanel>
                </Button>

我想你想要这样的东西:

private void button1_Click(object sender, RoutedEventArgs e)
{
    Button btn = (Button)sender;
    Canvas canvas = ((StackPanel)btn.Content).Children
                                             .OfType<Canvas>()
                                             .First();
    canvas.Children.Clear();
    //at this point you can also get corresponding `Canvas` name 
    //(if you really have to) :
    //String name = canvas.Name;
}
private void按钮1\u单击(对象发送者,路由目标)
{
按钮btn=(按钮)发送器;
Canvas Canvas=((StackPanel)btn.Content).Children
第()类
.First();
canvas.Children.Clear();
//此时,您还可以获得相应的“Canvas”名称
//(如果你真的需要):
//字符串名称=canvas.name;
}

非常感谢!就这样,很高兴能学到一个简单的方法。
private void button1_Click(object sender, RoutedEventArgs e)
{
    Button btn = (Button)sender;
    Canvas canvas = ((StackPanel)btn.Content).Children
                                             .OfType<Canvas>()
                                             .First();
    canvas.Children.Clear();
    //at this point you can also get corresponding `Canvas` name 
    //(if you really have to) :
    //String name = canvas.Name;
}