从父按钮发件人获取图像对象

时间:2019-03-04 08:51:09

标签: c# user-interface uwp

我想像这样访问XAML中包含在按钮中的Image对象:

        <Button Name ="btn1" Click="ButtonClick">
            <Image x:Name="imgbtn1" Source="/Assets/myImage1.png"/>
        </Button>

在我的代码部分中,我具有Click处理程序,并且尝试了一些尝试来尝试从按钮发送器获取Image对象。到目前为止找到的所有解决方案都不适合我。这是我尝试过的其中一项操作的示例:

private void ButtonClick(object sender, RoutedEventArgs e)
{
    Image image = (Image)((Button)sender).Child;
    image.Source = "/Assets/myImage2.png"
}

执行此操作时,将以错误消息突出显示Child:“按钮”不包含“ Child”的定义。

如何从按钮发送器获取图像,或者我做错了什么?

1 个答案:

答案 0 :(得分:1)

您必须使用Content而不是childImage标签中出现的Button表示其内容不是子内容。我已根据需要修改了您的代码。

<Button Name ="btn1" Click="Button_Click" >
  <Image x:Name="imgbtn1" Source="/Assets/1.jpg"/>
</Button> 

private async void Button_Click(object sender, RoutedEventArgs e)
{            
  Image image = (Image)((Button)sender).Content;
  image.Source = new BitmapImage() { UriSource = new Uri("ms-appx:///Assets/2.png") };
}